您的位置:首页 > 移动开发 > Android开发

Android 怎么退出整个应用程序

2014-09-21 17:08 399 查看
我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。 我做的是在按下MENU键后弹出是否退出提示框,点确定后完全退出应用,示例如下:1、将下面SysApplication这个类复制到工程里面
package com.example.app_jkez;

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.DialogInterface.OnClickListener;
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();
}
}
</activity></activity>


2、然后在每个Acitivity的oncreate方法里面过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去(注意:每个Acitivity也就是这个界面一步一步退出时,经过的页面)
public class after_service extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.after_service);

SysApplication.getInstance().addActivity(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,1,1,"退出");
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item){

if(item.getItemId() == 1){
AlertDialog isExit = new AlertDialog.Builder(this).create();
isExit.setTitle("系统提示");
isExit.setMessage("确定要退出吗");
isExit.setButton("确定", listener);
isExit.setButton2("取消",listener);
isExit.show();
}
return false;
}


3、最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。
//监听对话框里边的Button事件
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
switch(which)
{
case AlertDialog.BUTTON_POSITIVE://确认按钮,退出程序
//finish();
//System.exit(0);
SysApplication.getInstance().exit();
case AlertDialog.BUTTON_NEGATIVE://取消按钮,取消对话框
break;
default:
break;
}
}
};
}


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