我将以下基本活动包括在内。我需要在处于前台状态的整个应用程序中监听网络变化。因此,为此,我将在基本活动的onStart()
中注册广播接收器,并在onStop()
中取消注册。但是,每当新创建一个活动时,就会调用此onStart()
方法并在广播接收机onReceive()
当时正在注册广播接收机,这就是仅在网络发生变化时才必须调用的问题。我已在清单文件中包含以下内容:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
以下是我的基本活动:
public class BaseActivity extends Activity {
private final IntentFilter networkIntentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
private BroadcastReceiver reciever = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// necessary code
}
};
@Override
public void onCreate(Bundle state) {
setContentView(R.layout.....);
}
@Override
public void onStart() {
registerReceiver(reciever , networkIntentFilter);
}
@Override
public void onStop() {
unregisterReceiver(reciever);
}
}