应用程序完全退出

前言

  在Android应用程序的完全退出有点麻烦,系统没有提供完全退出的api。

退出单Activity程序

  Android系统中提供了以下的方式来退出单Activity的应用程序,如下所示

  

Process.killProcess(Process.myPid());  
System.exit(0);

退出多Activity程序

  上一小节提到了退出单个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

原文地址:https://www.cnblogs.com/luoaz/p/3936199.html