單個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是否可行-。-