說一下簡單的思路:
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();
}
}