Android 怎么退出整个应用程序?


 我们在写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();
	}
}


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;
			}
		}
	};



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值