在Android開發時,一般情況下我們如果需要關掉當前Activity非常容易,只需要一行代碼 this.finish;即可。
那么,如果是想要在當前Activity中關掉其它的Activity應該怎么實現呢?
比如更改了某個設定,程序需要重新運行並加載新的配置文件,就要用到restart或finish讓程序重啟。
可以參考下面的代碼:
推薦使用第一種方法,因為finish掉一個Activity再啟動該Activity比重啟整個程序要快一些。
1.對於簡單的兩個Activity,在B界面finish掉A界面: 先在A中將自己賦給test_a
public class A_activity extends Activity { public static A_activity test_a = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ..... test_a = this; } }
再在B中調用並finish掉test_a
public class B_activity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); A_activity.test_a.finish(); } }
其它方法:先退出程序,再運行程序。
2.通過ActivityManager重新運行程序
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); manager.restartPackage(packageName);
3.或者這樣退出並重新運行。
//退出第一個Activity界面 System.exit(0); //重新加載MainActivity界面實現刷新效果 Intent intent = new Intent(Settings.this, MainActivity.class); startActivity(intent);