1. 程式人生 > >android中兩種銷燬activity的方式

android中兩種銷燬activity的方式

public class BaseActivity extends Activity {

    private BroadcastReceiver recvExit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        MyApplication.getActivityList().addActivity(this);//方式1 以前的方式--記錄和遍歷


        recvExit = new
BroadcastReceiver() {//方式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); }