android中兩種銷燬activity的方式
阿新 • • 發佈:2019-02-19
public class BaseActivity extends Activity { private BroadcastReceiver recvExit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyApplication.getActivityList().addActivity(this);//方式1 以前的方式--記錄和遍歷 recvExit = newBroadcastReceiver() {//方式2 新的方式-廣播 @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("EXIT_APP")){ finish(); } } }; IntentFilter filter = new IntentFilter(); filter.addAction("EXIT_APP"); registerReceiver(recvExit, filter); } @Override protected void onDestroy() { //MyLog.i(TAG, " destroy!"); MyApplication.getActivityList().removeActivity(this);//方式1 try { unregisterReceiver(recvExit);//方式2 }catch (Exception e){ }super.onDestroy(); // Always call the superclass } } 銷燬的時候呼叫函式 public void finishAll() { //方式1 for (Activity activity : activityList) { if (activity != null) { activity.finish(); } } } public void finishAll() {//方式2 Intent intent = new Intent("EXIT_APP"); MyApplication.getAppContext().sendBroadcast(intent); }