博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android学习——退出整个应用程序
阅读量:4987 次
发布时间:2019-06-12

本文共 2770 字,大约阅读时间需要 9 分钟。

将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addActivity(this); 添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplication.getInstance().exit();可直接关闭所有的Acitivity并退出应用程序。

package com.example.Emotional.util; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application;   /** * * 类名称:SysApplication   * 类描述:   退出整个应用程序的类* 创建时间:2014-4-25 下午1:58:00   * 修改备注:   * @version    * */ public class SysApplication extends Application {          private List
mList = new LinkedList
(); 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(); } }

在硬退出按钮点击时

//点击硬退出按钮    public void clickQuitDialog() {                      AlertDialog.Builder builder = new Builder(FirstActivity.this);             builder.setMessage("确定要退出吗?");             //          builder.setTitle("提示");             builder.setPositiveButton("确认",new android.content.DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         dialog.dismiss(); //                        FirstActivity.this.finish(); //                        System.exit(0);                        SysApplication.getInstance().exit();                    }                 });             builder.setNegativeButton("取消",new android.content.DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         dialog.dismiss();                     }                 });             builder.create().show();         }              @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {                          //event.getRepeatCount() == 0 防止重复点击            if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {                 clickQuitDialog();                 return false;             }             return false;         }

 

转载于:https://www.cnblogs.com/guichun/p/4346829.html

你可能感兴趣的文章
asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
查看>>
7.STM32中GPIO理解
查看>>
base64 json
查看>>
排序算法(一) —— 冒泡排序
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
四则运算C++带Qt界面版本,吾王镇楼。。。。。
查看>>
安卓7.0手机拍照闪退问题解决
查看>>
ME525+ Defy+ 刷机指南[zz]
查看>>
支持触屏的jQuery轮播图插件
查看>>
差一点搞混了Transactional注解
查看>>
javascript基本函数
查看>>
前端公共库cdn服务推荐//提高加载速度/节省流量
查看>>
snprintf 返回值陷阱 重新封装
查看>>
asp.net GridView多行表头的实现,合并表头
查看>>
C#套打
查看>>