下面是代码。该方法的原理是用一个list记录每次启动的acitivity,在退出时候循环退出改list中保存的acitivity,这样就做到了所有的acitivity完美退出。
先写一个类继承Application
package com.zhaoba.service; import java.util.ArrayList; import java.util.List;
import android.app.Activity; import android.app.Application;
publicclassAgentAppextendsApplication
{ privateList<Activity> activities =newArrayList<Activity>();
privatestaticAgentApp instance;
privateAgentApp(){ } //单例模式中获取唯一的application
public static AgentApp getInstance()
{ if(null==instance)
{ instance=newAgentApp();
} return instance;
} //存放Activity到list中
publicvoid addActivity(Activity activity){ activities.add(activity); }
@Override //遍历存放在list中的Activity并退出
public void onTerminate()
{ super.onTerminate(); for(Activity activity : activities){ activity.finish(); }
android.os.Process.killProcess(android.os.Process.myPid()); }
}
然后在每个要acitivity的oncreate方法中添加下面的代码:
AgentApp.getInstance().addActivity(this);
最后在你要退出的界面执行下面的代码:
AgentApp.getInstance().onTerminate();
只需这三步,就可以做到完美退出了。 很实用