博客地址:http://www.cnblogs.com/colinliu/
在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);
|
本文介绍在Android开发中如何从一个Activity关闭另一个Activity的方法,并提供两种实现途径:一是通过静态引用直接finish目标Activity;二是通过ActivityManager重启整个应用程序。
517

被折叠的 条评论
为什么被折叠?



