Android中finish掉其它的Activity

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中finish掉其它的Activity相关的知识,希望对你有一定的参考价值。

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);

以上是关于Android中finish掉其它的Activity的主要内容,如果未能解决你的问题,请参考以下文章

android中怎么kill掉一个activity?

android 怎么把进程结束掉

Android 在程序运行时,有若干个activity,怎么在退出这个Activity是,释放掉它所占用的运行空间

GitHub 优秀的 Android 开源项目

android finish() 方法不会从内存中清除应用程序

socket回调中无法finish Activity的情况?