Androidは一度にすべてのactivityを閉じて完全にアプリケーションを終了します

1785 ワード

メニューは機能キーを返しますが、この方法もsystemしか使えません.exit(0)は現在のアクティブなActivityをオフにし、すでに4つのActivity:A,B,C,Dを起動している場合は、D Activityですべてのactivityを一度にオフにしたい
activityを処理するためのクラスを作成します.
package com.layout;

import java.util.LinkedList; 
import java.util.List; 
import android.app.Activity; 
import android.app.Application; 
/**
 *             activity
 * @author Administrator
 *
 */
public class SysApplication extends Application {
	//  list       activity   
    private List mList = new LinkedList();
    //                          
    private static SysApplication instance; 
    //    
    private SysApplication(){}
    //     
    public synchronized static SysApplication getInstance(){ 
        if (null == instance) { 
            instance = new SysApplication(); 
        } 
        return instance; 
    } 
    // add Activity  
    public void addActivity(Activity activity) { 
        mList.add(activity); 
    } 
    //     list  activity
    public void exit() { 
        try { 
            for (Activity activity:mList) { 
                if (activity != null) 
                    activity.finish(); 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } finally { 
            System.exit(0); 
        } 
    } 
    //   
    public void onLowMemory() { 
        super.onLowMemory();     
        System.gc(); 
    }  
}
 

各activityが作成されるときに加算
SysApplication.getInstance().addActivity(this);  
activityをlistに追加します.
 
クローズしたい場合はSysApplicationのexitメソッドを呼び出します
//        
SysApplication.getInstance().exit();  

転載先:
http://java--hhf.iteye.com/blog/1826880
http://blog.sina.com.cn/s/blog_90cdca4c01016gzt.html