安全退出应用程序

Android之安全退出应用程序的几种方式 当我们做项目的时候,当用户在几秒的时间之内按回车键的时候,需要退出程序,但是退出我们要确保安全退出,防止还有程序还在后台运行,下面介绍几种安全的退出程的几种方式(综合了其它博客的然后加上自己使用的看到的总结) number1: 首先获取当前进程的id,然后杀死该进程。 建议使用这种方式 android.os.Process.killProcess(andro 阅读详情

安全退出应用程序

  1. 杀死进程。
    这种方法是没有效果的只能杀死当前的Activity无法关闭程序,在1.5的时候有用,谷歌设计的时候规定程序不能自杀
    android.os.Process.killProcess(android.os.Process.myPid()).
  2. 终止当前正在运行的Java虚拟机,导致程序终止.
    这种方法也是没有效果的,因为Android用的是dalvik虚拟机
    System.exit(0);
  3. 强制关闭与该包有关联的一切执行
    这种方法只能杀死别人,无法杀死自己
    java
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    manager.restartPackage(getPackageName());
    同时需要申请权限
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />

既然上面介绍的三种方法都没有效果,那么怎么才能退出应用程序呢?
就是自定义一个Application,在该Application中去定义一个List<Activity>的集合来记录中每一个开启的Activity,在退出的时候去遍历这个List<Activity>集合,
然后挨个的进行mActivity.finish()方法,这要求在每开启一个Activity的时候都加入到List集合中,并且在Activity退出的时候从List集合中将其移除。

public class Activity01 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.add(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.remove(this);
    }

    public void click1(View view){
        Intent intent = new Intent(this,Activity01.class);
        startActivity(intent);
    }
    public void click2(View view){
        Intent intent = new Intent(this,Activity02.class);
        startActivity(intent);
    }

    public void exit(View view){
        MyApp myApp = (MyApp) getApplication();
         for(Activity ac : myApp.activies){
             ac.finish();
         }
    }
}

public class Activity02 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.add(this);
    }

    public void click1(View view) {
        Intent intent = new Intent(this, Activity01.class);
        startActivity(intent);
    }

    public void click2(View view) {
        Intent intent = new Intent(this, Activity02.class);
        startActivity(intent);
    }

    public void exit(View view) {
        MyApp myApp = (MyApp) getApplication();
        for (Activity ac : myApp.activies) {
            ac.finish();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        MyApp myApp = (MyApp) getApplication();
        myApp.activies.remove(this);
    }
}

public class MyApp extends Application {
    //存放当前应用程序里面打开的所有的activity
    public List<Activity> activies;
    @Override
    public void onCreate() {
        activies = new ArrayList<Activity>();
        super.onCreate();
    } 
}

  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
从驱动编译到数据传输:RK3588与FPGA的PCIe通信实战解析 本文详细解析了RK3588与FPGA通过PCIe通信的实战过程,涵盖驱动编译、数据传输及性能优化等关键步骤。通过XDMA驱动实现高效DMA传输,适用于视频处理、数据采集等高性能场景,帮助开发者快速掌握嵌入式系统中的PCIe通信技术。 阅读详情

相关推荐

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2369

进程启动与动态加载库信息

通过ipsec start命令启动 ipsec 实际是一个可执行脚本,放在/usr/local/sbin下,他实际调用了/usr/local/libexec/ipsec/目录下的starter。 通过ldd命令可以查看相关进程的依赖库信息。 [root@flexbng-dev ipsec]# ll total 560 -rwxr-xr-x. 1 root

xingyeping的博客 1632

详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

声明:本文为原创文章,发表于nebulaf91的csdn博客。欢迎转载,但请务必保留本信息,注明文章出处。 本文作者: nebulaf91 本文原始地址:最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很

nebulaf91的博客 33万+

charon异常死锁无法正常结束进程

解决 charon 进程占用端口问题的总结和步骤,以便下次遇到类似问题时快速处理:

逗老师的博客 1039

BMS开发避坑指南:如何用ADBMS6815实现0.03%精度的电池采样?

本文深入解析了如何利用ADBMS6815等高精度AFE芯片,在车规级BMS开发中实现0.03%级别的电池电压采样精度。文章从芯片选型、硬件设计、软件配置、算法优化到系统验证,提供了一套完整的实战指南,帮助工程师系统性地提升BMS测量精度,从而保障电池安全、延长寿命并增强产品竞争力。

weixin_28314575的博客 135

H3C防火墙旁路部署实战:网关迁移到防火墙后,如何配置DHCP和VLAN间隔离策略?

本文详细介绍了H3C防火墙旁路部署实战,重点讲解网关迁移到防火墙后的DHCP配置和VLAN间隔离策略。通过实际案例和配置示例,帮助网络工程师解决传统核心交换机架构的性能瓶颈和安全管控问题,实现精细化访问控制。

weixin_42549451的博客 420

strongswan——IKE建立过程

strongswan的主进程为charon进程,负责IKE SA、IPSec SA建立、拆除、更新及其他相关的操作。 charon进程默认通过socket-default插件与内核交互,用于IKE协议报文的收发。socket-default插件被编译为动态库,charon进程启动的时候,在初始化阶段动态加载。如下图 Socket-default通过poll机制阻塞等待内核收到的IKE协议报...

weixin_30498807的博客 1296

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1428

基于路由和VTI隧道接口的net2net的IPSec实现

以下根据strongswan代码中的testing/tests/route-based/net2net-vti/中的测试环境,来看一下基于路由和VTI接口实现的安全连接。拓扑结构如下: 拓扑图中使用到的设备包括:虚拟主机carol和dave,以及虚拟网关moon。 sun网关配置 sun的配置文件:/etc/swanctl/swanctl.conf,内容如下。连接home中的字段vips设置为0...

redwingz的博客 2410

037、有源钳位反激变换器(ACF)原理

文章摘要 有源钳位反激变换器(ACF)是一种克服常规反激电路漏感能量处理瓶颈的高效解决方案。文章从实际炸机案例切入,指出RCD钳位电路在高压、宽范围、高功率场景下的局限性。ACF通过增加钳位管和钳位电容,将漏感能量回收而非消耗,实现效率提升2-3%、精准电压钳位和更好EMI性能。文章详细解析了ACF四阶段工作过程、关键波形特征,并指出设计陷阱:漏感需保持1%-3%特定范围、钳位电容ESR要求严格、需专用控制IC支持互补驱动。最后给出实用调试建议,强调ACF适用于65W+功率场景,低压验证后再逐步升压的调试方

Jack010169的博客 270

3D打印机控制系统设计:基于MATLAB的3D打印机运动学建模、轨迹规划和控制

控制实现:在控制实现中,需要将轨迹规划的结果转化为实际的控制指令,控制3D打印机按照规划的轨迹进行运动。3D打印机的运动学建模:3D打印机的运动学建模是指将3D打印机的机械结构、传动系统和运动控制部件等抽象成数学模型,以便于进行控制系统的设计和分析。轨迹规划:轨迹规划是指根据3D模型的几何形状和打印机的运动学模型,计算出打印机需要执行的运动轨迹,以便于实现所需的打印效果。控制实现:控制实现是指将轨迹规划的结果转化为控制指令,控制3D打印机按照规划的轨迹进行运动。

走向CTO的路上... 2474

linux

Linux系统中使用以下命令来查看文件的内容:cat 由第一行开始显示文件内容tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!nl 显示的时候,顺道输出行号!more 一页一页的显示文件内容less 与 more 类似,但是比 more 更好的是,他可以往前翻页!head 只看头几行tail 只看尾巴几行你可以使用 *man [命令]*来查看各个命令的使用文档,如 :man cp。Vim是从 vi 发展出来的一个文本编辑器。

qq_60511763的博客 309

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 安全退出应用程序的几种方法

android 安全退出应用程序的几种方法    正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。 android.os.Process.killProcess(android.os.Process.myPid()) 通过这种方式不能将应用程序完全杀死,并

LL-Studio的专栏 1152

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java检测安卓程序退出_Android 安全退出应用程序的方法总结

Android 安全退出应用程序的方法总结正常关闭应用程序:当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:第一种方法:首先获取当前进程的id,然后杀死该进程。android.os.Process.killProcess(android.os.Process.myPid())通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务...

weixin_42161450的博客 416

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 安全退出应用程序

正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。 android.os.Process.killProcess(android.os.Process.myPid()) 通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空 第

Whatever is worth doing is worth doing well. 3546

Android 安全退出应用程序

转载地址:http://www.linuxidc.com/Linux/2012-06/64055.htm 正常关闭Android应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程。  android.os.Process.killProcess(android.os.Process.myP

scott2017的博客 461

Android安全退出应用程序

杀死进程。 这种方法是没有效果的只能杀死当前的Activity无法关闭程序,在1.5的时候有用,谷歌设计的时候规定程序不能自杀android.os.Process.killProcess(android.os.Process.myPid()). 终止当前正在运行的Java虚拟机,导致程序终止. 这种方法也是没有效果的,因为Android用的是dalvik虚拟机 System.exit(0);

梵依然的专栏 1028

Android 安全退出应用程序的方法总结

简述Android安全退出程序的实现方法

用键盘掌控世界 1014

WEB应用程序开发(六)创建Session对象与实现界面安全退出/登录功能

WEB应用程序开发之创建Session对象与实现界面安全退出/登录功能什么是session创建Session思维图代码测试与结果Session方法Session生命周期创建方式销毁方式一. 服务器关闭二. 长时间不调用自动销毁三. 调用invalidate()方法 销毁session安全退出 什么是session Session对象是javax.servlet.http.HttpSession的实例 它在第一个JSP页面被装载时自动创建,完成会话期管理。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏

qq_51352148的博客 4510

android 不让退出应用程序,我的Android进阶之旅------>Android安全退出应用程序的几种方式...

我的Android进阶之旅------>Android安全退出应用程序的几种方式分类: Android应用开发2013-09-26 22:5797人阅读评论(0)收藏举报当应用不再使用时,通常需要关闭应用,可以使用以下几种方法关闭android应用:第一种方法:首先获取当前进程的id,然后杀死该进程。 建议使用这种方式android.os.Process.killProcess(andro...

weixin_30831261的博客 1742
上一篇: WebView总结
下一篇: 超级管理员(DevicePoliceManager)
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值