为了在我的应用程序中节省电池,每当我的应用程序需要与云同步时,我首先检查网络是否可用。如果没有可用的连接,我按如下方式注册网络广播接收器。但这永远不会被称为。
我正在通过将设备置于飞行模式来测试它。我看到“Network Receiver ENABLED”消息。但在我禁用飞机模式后,在我的Wifi连接后,我希望看到“收到的网络更改意图”消息,它永远不会出现。
有谁可以指出我可能做错了什么?
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
networkReceiver = new NetworkReceiver();
registerReceiver(networkReceiver, filter);
Log.d(TAG, "Network Receiver ENABLED");
这是NetworkReceiver:
public class NetworkReceiver extends BroadcastReceiver {
private static String TAG = NetworkReceiver.class.getSimpleName();
@Override
public void onReceive(Context context_, Intent intent_) {
Log.d(TAG, "Received Network Change Intent");
}
}
答案 0 :(得分:0)
您可以尝试以下选项。
如果您尚未在清单文件中声明,请设置网络访问权限:sample = {
myVar:10; // this is your variable
foo : function () {
return this.myVar++; // use this keyword to access it.
},
bar : function () {
}
};
。
使用上下文注册Receiver:
而不是<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> </uses-permission>
使用registerReceiver(networkReceiver, filter);