首先问题是这样的,比如:我刚进入应用时有一个欢迎页面(E),随后进入主A,我从A->B->C->D,然后直接从D返回到A,在A中完全退出应用。对于android自带的1.5 - 2.1以及2.2之后完全退出应用的API我都试了,但还是实现不了,有的是能退出,但是欢迎页面就没有了,可能是我的原因。  后来我是这样实现的,当然有点老土,但还是能实现的。如下,同样也欢迎拍砖

public class ExitApplication extends Application {

//存储已打开的Activity集合

private List list = new ArrayList();

//单例的ExitApplication,目的是在任何的Activity中用的都是同一个集合

private static ExitApplication ea;

private ExitApplication(){

}

public static ExitApplication getInstance(){

if(null==ea){

ea = new ExitApplication();

}

return ea;

}

/**

* 添加Activity到集合中

*/

public void addActivity(Activity activity){

list.add(activity);

}

public void exit(Context context){

Dialog dialog = new AlertDialog.Builder(context).setTitle("确认退出")

.setMessage("确定退出该系统?")

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

for(Activity activity:list){

activity.finish();

}

System.exit(0);

}

}).setNegativeButton("取消",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int whichButton) {

}

}).create();

dialog.show();

}

}

我这个必须是单例的,因为我要确保把每个UI都加进一个集合中,所以...,至于对单例有疑问的,可以上网查询,

然后在每个Activity的onCreate方法中调用ExitApplication.getInstance().addActivity(this);,然后在处理退出请求中直接调用ExitApplication.getInstance().exit(this);即可。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐