在Android应用程序的完全退出有点麻烦,系统没有提供完全退出的api。
Android系统中提供了以下的方式来退出单Activity的应用程序,如下所示
Process.killProcess(Process.myPid());
System.exit(0);
上一小节提到了退出单个Activity的方式,然而实际开发中很少有单个Activity的应用程序,而多个Activity的应用程序完全退出又不能直接退出,下面的方式通过记录各个打开的Activity,然后分别将各个Activity finish掉,这样就间接的实现了完全退出的功能。具体代码如下
package com.luoaz.founsys.util;
import android.app.Activity;
import java.util.LinkedList;
import java.util.List;
public class SysApplication extends Activity {
//用来记录打开的Activity
private List<Activity> mList = new LinkedList();
private static SysApplication instance;
private SysApplication() {
}
//单例
public synchronized static SysApplication getInstance() {
if (null == instance) {
instance = new SysApplication();
}
return instance;
}
// 增加 Activity
public void addActivity(Activity activity) {
mList.add(activity);
}
/**
* 退出所有在记录中的Activity
* */
public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
}
由于Android没有提供直接退出应用程序的api,那么只能通过其他方式变相实现此功能,上述是实现这个功能的一种方式,但不是唯一方式。
原文:http://www.cnblogs.com/luoaz/p/3936199.html