说一下简单的思路:
1:写一个基类BaseActivity,在这个基类中自定义注册一个广播,内容为finish()。
2:实现一个方法sendBroadCastToExit(),这个方法的内容是发送第一步注册的广播sendBroadcast(new Intent("android.intent.action.finish"));
3:所有的activity都继承这个基类,在你需要关闭所有activity的监听的地方写入sendBroadCastToExit();这个方法即可。
废话少说,看代码:
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter intentFilter = new IntentFilter("android.intent.action.finish");
registerReceiver(mReceiver, intentFilter);
}
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
public void sendBroadCastToExit() {
sendBroadcast(new Intent("android.intent.action.finish"));
}
@Override
protected void onDestroy() {
unregisterReceiver(mReceiver);
super.onDestroy();
}
}