1. 程式人生 > >Android中finish掉其它的Activity

Android中finish掉其它的Activity

在Android開發時,一般情況下我們如果需要關掉當前Activity非常容易,只需要一行程式碼 this.finish;即可。
那麼,如果是想要在當前Activity中關掉其它的Activity應該怎麼實現呢?
比如更改了某個設定,程式需要重新執行並載入新的配置檔案,就要用到restart或finish讓程式重啟。

可以參考下面的程式碼:

推薦使用第一種方法,因為finish掉一個Activity再啟動該Activity比重啟整個程式要快一些。

1.對於簡單的兩個Activity,在B介面finish掉A介面: 先在A中將自己賦給test_a

1 2 3 4 5 6 7 8 9 10 publicclassA_activity extends Activity { publicstaticA_activity test_a =null; @Override protectedvoidonCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ..... test_a =this; } }

再在B中呼叫並finish掉test_a

1 2 3 4 5 6 7 8 publicclassB_activity extends Activity { @Override protectedvoidonCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); A_activity.test_a.finish(); } }

其它方法:先退出程式,再執行程式。

2.通過ActivityManager重新執行程式

1 2 ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(packageName);

3.或者這樣退出並重新執行。

1 2 3 4 5 //退出第一個Activity介面 System.exit(0); //重新載入MainActivity介面實現重新整理效果 Intent intent =newIntent(Settings.this, MainActivity.class); startActivity(intent);