在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 | 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
1 2 3 4 5 6 7 8 | 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重新运行程序
1 2 | ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); manager.restartPackage(packageName); |
3.或者这样退出并重新运行。
1 2 3 4 5 | //退出第一个Activity界面 System.exit(0); //重新加载MainActivity界面实现刷新效果 Intent intent = new Intent(Settings. this , MainActivity. class ); startActivity(intent); |