代码之家  ›  专栏  ›  技术社区  ›  propoLis

Internet广播接收器在后台不工作

  •  2
  • propoLis  · 技术社区  · 5 年前

    我听改变了与广播接收器的互联网连接。在前景中,一切都很好。但当应用程序被终止时,它就不起作用了。

    显示:

    <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" />
    

    我的广播接收器(网络接收器):

    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) {
        }
    }
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   cowboi-peng    5 年前

    请参考此链接 https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html . o不支持连接更改操作。你可以尝试另一种方法。