当应用程序被杀死时,互联网广播接收器不工作
Internet broadcast receiver is not working when app is killed
我用广播接收器收听更改的互联网连接。在前台,一切都很棒。但是当应用程序被杀死时它不起作用。
清单:
<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) {
}
}
请参考这个 link https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html 。
connectivity_change O 不支持操作。你可以试试别的方法。
我用广播接收器收听更改的互联网连接。在前台,一切都很棒。但是当应用程序被杀死时它不起作用。
清单:
<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) {
}
}
请参考这个 link https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html 。 connectivity_change O 不支持操作。你可以试试别的方法。