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);
时间: 2024-08-08 01:29:32

Android中finish掉其它的Activity的相关文章

android如何在一个activity中finish掉另外一个activity

============问题描述============ 请教:android如何在一个activity中finish掉另外一个activity? ============解决方案1============ 1.finishAcyivity() 2.用广播监听 3.用ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);试试吧 ============解决方案2============ 比如说B要fin

Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]

http://blog.csdn.net/cjjky/article/details/6441104 在Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口.下面我们以一个完整的例子来说明. 1.新建一个A

android中最先被执行的activity

像C.C++.JAVA都有一个主函数作为程序的入口点,但是Android中并没有一个明确的主窗口,那么在有多个Activity的情况下,最先被执行的是哪个呢?这完全取决于配置文件AndroidMainfest.xml中的配置. 哪个Activity下有下面这段程序,哪个Activity就最先被加载 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category a

android中使用startactivityforresult跳转Activity后需要重写onBackPressed()方法

在android项目中经常会用startactivityforresult从一个Activity跳转到另一个Activity(这里指Activity_A和Activity_B),你可以从Activity_B返回数据到Activity_A中, 但是如果直接按手机返回键,因为并没有返回内容给Activity_A,所以程序会报错. 这事可以通过在Activity_B中重写onBackPressed()方法解决问题,代码如下: private int backCode = 1; @Override pu

android中使用intent来实现Activity带数据跳转

大家都知道startActivity()是用来切换跳转Activity的.如果想要在另个Activity中出书数据的话.只需要在源activity中使用intent.putExtra()方法传出数据.在对应activity中使用intent.get**Extra()方法接收数据就行了 那么startActivityForResult()方法呢.它也是用来带数据跳转activity的.可是这两个方法具体有什么区别呢? 这就要说说带数据跳转的方向了. 第一个方法只能把数据发送过去.可是如果子acti

android中传递复杂参数,Activity之间通过Intent使用bundle,fragment之间和Activityty通过setArguments使用bundle

在Android开发中,Activity之间通过Intent使用bundle,fragment之间和Activityty通过setArguments使用bundle,对于一些简单的参数传递比较简单,而且方式也有多种,这个就不介绍了.在这里介绍一下复杂的参数传递,比如传递集合ArrayList,对象ArrayList<Object>. 无论是Activity之间参数传递,还是Fragment之间参数传递,或者是Activity与Fragment之间,都要使用Bundle,方式基本相同.Bundl

android中的返回键与Activity

我在做应用时遇到一个问题,就是在启动主页面时需要预先加载一些数据,我是在一个加载页中处理完这些数据然后再转到主页面,但当我在主页面中按返回键时,系统会返回加载页面.我不希望加载页在使用完之后还被保留在任务中. Android的官方文档中这样描述的返回栈.任务和activity的默认关系: 1:当从Activity A中启动Activity B时,Activity A停止,但是保存了它的状态(比如,滚动位置和表单中的文字).如果当用户在Activity B中按了返回键,Activity A会恢复之

Android中Service与多个Activity通信

由于项目需要,我们有时候需要在service中处理耗时操作,然后将结果发送给activity以更新状态.通常情况下,我们只需要在一个service与一个activity之间通信,通常这种情况下,我们使用最多的是通过回调接口.具体做法是在service中定义一个接口,在activity中实现该接口,并通过bindservice来传入.实现方式很简单,在此不再赘述. 当需要将service中的结果一次发送给多个activity时,我们又该如何实现呢?经过多个项目的积累,总结了三种实现的方式.分别是回

介绍Model-View-Presenter在Android中的应用

这篇文章是我学习MVP模式时翻译的,原文是Konstantin Mikheev所写,传送门. 因英语水平有限,翻译的很生硬,基本靠Google,请见谅.以下是译文. 这篇文章我会通过一个最简单的例子去一步步介绍MVP模式在Android中的最佳实践.同时我也会介绍一个使MVP模式在Android开发中变简单的library. 简单?怎么才能从中获益呢? 什么是MVP View层是用来显示数据和相应数据操作的.在Android中,它可能是Activity,Fragment,View或者Dialog