android - 当应用程序被杀死时,互联网广播接收器不工作
问题描述
我用广播接收器收听改变的互联网连接。在前台,一切都很棒。但是当应用程序被杀死时它不起作用。
显现:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
我的广播接收器( NetworkReceiver ):
application.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent{
}, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
网络约束:
public class NetworkConstraint implements Constraint {
@Override
public boolean isConnected() {
ConnectivityManager connectivityManager = (ConnectivityManager) application.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
@Override
public void applyToJobInfo(@NonNull JobInfo.Builder jobInfoBuilder) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
jobInfoBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
}
}
}
细胞约束:
public class CellServiceConstraint implements Constraint {
@Override
public boolean isConnected() {
return new TelephonyServiceState().isConnected(application);
}
@Override
public void applyToJobInfo(@NonNull JobInfo.Builder jobInfoBuilder) {
}
}
解决方案
请参考此链接https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html。O 不支持connectivity_change 操作。你可以尝试另一种方式。
推荐阅读
- bash - 在两个文件之间递归搜索单词并将匹配行输出为新文件
- javascript - 包装在 Promise 中生成 XMLHttpRequest 的绑定函数时出现问题
- django - 两个字段唯一
- python - 结合两个不同大小的列表python。数据的标题列表
- javascript - 如何防止 JavaScript 中的原型污染
- html - 如何使用swift从aspx网站获取html
- mysql - 在mysql 8 json中按值计算数据
- c# - C#如何获取当前的 24 小时时间但从早上 8 点开始
- javascript - 如何在 jQuery 工具提示中装饰 Laravel Eloquent 信息?
- javascript - JQuery:使用类名自动填充多个内容可编辑项