Android 应用程序关闭时,Internet广播接收器不工作
我用广播接收器收听已更改的internet连接。在前景中,一切都很好。但当应用程序被杀死时,它就不起作用了 舱单:Android 应用程序关闭时,Internet广播接收器不工作,android,broadcastreceiver,Android,Broadcastreceiver,我用广播接收器收听已更改的internet连接。在前景中,一切都很好。但当应用程序被杀死时,它就不起作用了 舱单: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:na
<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" />
网络约束:
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) {
}
}
单元约束:
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) {
}
}
请参考此链接。
O不支持连接更改操作。你可以尝试另一种方法。我找不到android O的其他方法。请帮助me@propoLis尝试在您的java代码中注册广播接收器吗?是的,我在我的应用程序中注册了广播接收器并添加到清单中。@蜂胶不在清单中,但在java代码中使用IntentFilter。这意味着谷歌建议你的应用程序只在你的应用程序运行时接收此广播。好的,我删除了清单中的广播接收器并添加了java代码,但仍然不工作