单个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是否可行-。-