android程序如果按返回键正常退出则会在后台继续运行,Android 2.3以上的开发可以用下面的方法结束所有程序的activity!
一、创建一个公共类:
public class KillActivity extends Activity{
private List<Activity> activityList = new ArrayList<Activity>();
private static KillActivity instance;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
KillActivity.getInstance().addActivity(this);
super.onCreate(savedInstanceState);
}
public static KillActivity getInstance() {
if (null == instance) {
instance = new KillActivity();
}
return instance;
}
public void remove(Activity activity){
activityList.remove(activity);
}
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
KillActivity.getInstance().remove(this);
}
public void addActivity(Activity activity) {
activityList.add(activity);
}
/**
* 遍历结束activity并且退出
*/
public void exit(){
try {
for (Activity activity : activityList)
{
if (activity != null)
activity.finish();
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
}
}
二、然后在所有的activity中继承此KillActivity;
三、这样在退出界面调用下面函数即可:
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// 按下键盘上返回按钮
if (keyCode == KeyEvent.KEYCODE_BACK)
{
new AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("确认退出")
.setNegativeButton("取消",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
}
})
.setPositiveButton("确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int whichButton)
{
// closed();
KillActivity.getInstance().exit();
}
}).show();
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
} //end of onKeyDown()
四、此方法已经成功测试通过!