在android单个的activity调用finish,killprocess(),system.exit()方法退出
多个Activity 在2.1之前,可以使用ActivityManager的RestartPackage方法,它可以直接结束整个应用,在使用时需要权限android.permission.RESTARTPACKAGES,在2.2这个方法失效了,新添加了一个方法,killBackgroundProcesses().需要权限android.permission.KILLBACKGTOUND_PROCESSE。不过以上的两个方法据说都没有实际的作用。我也没有实验,我用的是另一种网上提供的方式。就是将所有的activity放入到一个list中,然后在需要退出的时候,将所有的activity,finish掉。
具体的代码如下:
首先是自定义application,写一个单例,保证只有一个application实例。
MyApplication.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public
class
MyApplication
extends
Application {
private
List<Activity> activityList =
new
LinkedList<Activity>();
private
static
MyApplication instance;
public
MyApplication() {
super
();
}
// 单例模式中获取唯一的MyApplication实例
public
static
MyApplication getInstance() {
if
(
null
== instance) {
instance =
new
MyApplication();
}
return
instance;
}
// 添加Activity到容器中
public
void
addActivity(Activity activity) {
activityList.add(activity);
}
// 遍历所有Activity并finish
public
void
exit() {
for
(Activity activity : activityList) {
activity.finish();
}
System.exit(
0
);
}
}
|