使用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();
浙公网安备 33010602011771号