文档章节

退出整个应用程序

mutouzhang
 mutouzhang
发布于 2014/04/25 14:06
字数 281
阅读 610
收藏 4

码上生花,ECharts 作品展示赛正式启动!>>>

将下面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<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(); 
    }  
}

在硬退出按钮点击时

//点击硬退出按钮
	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; 
	    }


© 著作权归作者所有

下一篇: Map升序
mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
私信 提问
加载中
请先登录后再评论。
.NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)

06 | 作用域与对象释放行为 接下来,把服务切换为单例模式,通过工厂的方式 启动程序,输出如下: 可以看到代码实际上不会被释放 如果切换为瞬时模式,通过工厂的方式 启动程序,输出如下: ...

osc_2w18qc4t
02/22
1
0
Android 安全退出应用程序的方法总结

正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。 android.os.Process.killProcess(and...

osc_qvzk8wey
2018/03/05
2
0
Android入门:Activity四种启动模式

一、启动模式介绍   启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;   启动模式有4种,分别为standard、singleTop、singleT...

习惯_搬砖
2015/09/14
27
0
android 安全退出应用程序

正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。 android.os.Process.killProcess(and...

长平狐
2012/09/03
267
0
C#强制退出WinForm程序之Application.Exit和Environment.Eixt

这几天在做一个把大量Infopath生成的XML数据,进行处理的程序,我用了MDI子窗体,每个窗体包含了各自的功能,如,遍历目录及其子目录检查文件类型并自动生成Sql语句并入库、对Infopath数据的...

sunrack
2010/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

BIO、NIO、AIO、Netty面试题

https://juejin.im/post/5e9421836fb9a03c7b3051bb

JaneRoad
10分钟前
15
0
elementui table缩略图滑过放大图片

html中 <el-table-column prop="qr_image" label="缩略图" width="180"> <template slot-scope="scope"> <el-popover trigger="hover" title="" placem......

大换子
19分钟前
16
0
家谱软件中的循环 - Cycles in family tree software

问题: I am the developer of some family tree software (written in C++ and Qt). 我是一些家庭树软件的开发者(用C ++和Qt编写)。 I had no problems until one of my customers mailed......

javail
21分钟前
23
0
MySQL 多表关联一对多查询取最新的一条数据

SQL语句 SELECT SQL_CALC_FOUND_ROWS* FROMtableA aLEFT JOIN (SELECTBC.* FROM( SELECT MAX( id ) AS cid FROM tableB GROUP BY code ) ACLEFT JOIN tableB B...

珞木橘子
28分钟前
16
0
nacos的启动方式以及注意的点

这个单机模式的启动方式 sh startup.sh -m standalone 注意,必须要加参数,如果不加参数启动了,无法正常访问 如果在用这个命令(sh startup.sh -m standalone)之前直接使用sh startup.sh ,...

千年典韦
38分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部