使用Application维护管理Activity列表

先自定义一个继承自Application的类:

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
 
public class MyApplication extends Application {
    private List<Activity>  activitys;
    //在Activity的OnCreate方法中调用,添加Activity实例
    public void addActivity(Activity act) {
        if(activitys==null)
        {
            activitys = new ArrayList<Activity>();
        }
        activitys.add(act);  
    }
    //退出程序时调用,调用所有Activity的finish方法
    public void finishAll() {  
        for (Activity act : activitys) {  
            if (!act.isFinishing()) {  
                act.finish();  
            }  
        }  
        activitys = null;  
    }  
}

 

修改AndroidManifest.xml中Application标签,设置android:name为我们自定义的MyApplication

<application android:name=".MyApplication"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar"  >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2"></activity>
    </application>

 

在每个Activity的OnCreate方法里把当前的Activity实例添加到Application里的列表中:

MyApplication application = (MyApplication) this.getApplication();
application.addActivity(this);

 

退出整个程序:

MyApplication application = (MyApplication) this.getApplication();
application.finishAll();

 

posted @ 2015-10-14 11:19  oho_yoho  阅读(273)  评论(0)    收藏  举报