java - 如何显示网络变化状态的对话?
问题描述
我在android中有一个用于网络更改状态的代码。但现在的问题是,当网络状态发生变化时,代码会显示小吃吧。我希望它在网络状态发生变化时显示对话框。我已经做了一切。我只想而不是小吃店对话将显示。
IntentFilter intentFilter = new IntentFilter(NetworkStateChangedReceiver.NETWORK_AVAILABLE_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean isNetworkAvailable = intent.getBooleanExtra(IS_NETWORK_AVAILABLE, false);
String networkStatus = isNetworkAvailable ? "connected" : "disconnected";
Snackbar.make(findViewById(R.id.activity_dashboard), "Network Status: " + networkStatus, Snackbar.LENGTH_LONG).show();
}
}, intentFilter);
解决方案
只需使用AlertDialog.Builder
创建警报对话框而不是Snackbar
. 以下几行的东西应该可以工作,
IntentFilter intentFilter = new IntentFilter(NetworkStateChangedReceiver.NETWORK_AVAILABLE_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean isNetworkAvailable = intent.getBooleanExtra(IS_NETWORK_AVAILABLE, false);
String networkStatus = isNetworkAvailable ? "connected" : "disconnected";
//Snackbar.make(findViewById(R.id.activity_dashboard), "Network Status: " + networkStatus, Snackbar.LENGTH_LONG).show();
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);
AlertDialog dialog = builder.create();
}
}, intentFilter);
推荐阅读
- byte - little-endian 中的 8 位数字和 big-endian 中的 8 位数字之间的区别
- node.js - 如何提取单个数组中的所有金额?
- php - 如何使用 Simple Html Dom 仅获得每个 TR 的第一个 TD?
- docker - 如何修复 docker 错误“没有用于挂载的子系统”?
- go - golang发出并发请求并组合响应
- ms-access - 使用 VB 在 Access 中将 AllowEdits 更改为 true 的按钮
- mongodb - 带有正则表达式的mongodb $elemMatch仅从单个文档的数组中返回一个元素
- apache-spark - 有没有办法动态停止 Spark Structured Streaming?
- apache-camel - 如何使用 apache camel 执行 LS、CD 等命令
- java - Jersey - 不允许使用 405 方法