zoukankan      html  css  js  c++  java
  • Android 完全退出

    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    import android.app.Application;
    
    
    /**
     * 应用配置类
     * @author leehongee
     *
     */
    public class AppManager extends Application{
    	/**打开的activity**/
    	private List<Activity> activities = new ArrayList<Activity>();
    	/**应用实例**/
    	private static AppManager instance;
    	/**
    	 * 	获得实例
    	 * @return
    	 */
    	public static AppManager getInstance(){
    		return instance;
    	}
    	/**
    	 * 新建了一个activity
    	 * @param activity
    	 */
    	public void addActivity(Activity activity){
    		activities.add(activity);
    	}	
    	/**
    	 * 	结束指定的Activity
    	 * @param activity
    	 */
    	public void finishActivity(Activity activity){
    		if (activity!=null) {
    			this.activities.remove(activity);
    			activity.finish();
    			activity = null;
    		}
    	}	
    	/**
    	 * 应用退出,结束所有的activity
    	 */
    	public void exit(){
    		for (Activity activity : activities) {
    			if (activity!=null) {
    				activity.finish();
    			}
    		}
    		System.exit(0);
    	}		
    	
    	@Override
    	public void onCreate() {
                instance = this;           
    	}		
    }
    

     然后我写了一个BaseActivity,以后的Activity 都继承这个Activity,如下

    import android.app.Activity;
    import android.os.Bundle;
    import android.os.StrictMode;
    
    /**
     * 基本Activity
     * @author leehongee
     * @date 2013-1-26 下午6:24:47
     * @version
     */
    public class BaseActivity extends Activity{
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		//添加到Activity集合
    		AppManager.getInstance().addActivity(this);
    		//手机端SDK>10,即 android 2.3.x之后在主线程中访问网络需要加入如下代码
    		if (AppConfig.getSDKVersionNumber()>10) {
    	        // 详见StrictMode文档
    	        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
    	                .detectDiskReads()
    	                .detectDiskWrites()
    	                .detectNetwork()   // or .detectAll() for all detectable problems
    	                .penaltyLog()
    	                .build());
    	        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
    	                .detectLeakedSqlLiteObjects()
    	                .detectLeakedClosableObjects()
    	                .penaltyLog()
    	                .penaltyDeath()
    	                .build());
    		}
    	}
    	
    	@Override
    	public void onBackPressed() {
    		super.onBackPressed();
    		onDestroy();
    	}
    	
    	@Override
    	protected void onDestroy() {
    		super.onDestroy();
    		//结束Activity&从集合中移除
    		AppManager.getInstance().finishActivity(this);
    	}
    
    }
    
  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/leehongee/p/2912756.html
Copyright © 2011-2022 走看看