您的位置:首页 > 其它

关于一次退出多个Activity的方法

2014-12-09 15:48 274 查看
单个activity退出可直接调用finish(); 但是一次推出多个呢?

比如:我依次进入不同Activity,A->B->C.(在A 进入B  在B 进去C)

若我在C activity返回键的时候,正常模式为退到了B activity,在返回键退到了A activity。然后再返回键退出应用

但是我想在C activity 按返回键时直接退出应用。

这就是具体问题的由来, 一次退出多个activity。

解决办法:

第一:在你的项目中导入此类,类名:SysApplication:

<span style="font-size:12px;">package com.example.viewpage; //这个是我的包,改成你自己的包名
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Application;
import android.content.DialogInterface;
import android.content.Intent;

public class SysApplication extends Application {
private List<Activity> mList = new LinkedList<Activity>();
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);
}

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();
}
}</span>
在你打开的每个acticity 的setContentView(R.layout.xx)前面(oncraet后)

 SysApplication.getInstance().addActivity(this);  //添加当前Acitivity到ancivitylist里面去

在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。

(我是返回键事件退出,)

比如你要在C activity按键退出应用,则在C activity重写onKeyDown函数:

<span style="font-size:14px;">@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {// 应用程序返回键的捕获
if(keyCode == KeyEvent.KEYCODE_BACK){//按返回键时
SysApplication.getInstance().exit();//调用此句代码
return true;
}
return true;
}
//	@Override
//	protected void onDestroy() {
//		super.onDestroy();
//		</span><span style="font-size:14px;">SysApplication.getInstance().exit();</span><span style="font-size:14px;"> 	}
}</span>
我不知道下边的ondestory是否可行-。-

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  activity