Android 实现彻底退出自己APP 并杀掉所有相关的进程
彻底杀掉 App 相关进程的代码
public void killAppProcess() { //注意:不能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程 ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> mList = mActivityManager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : mList) { if (runningAppProcessInfo.pid != android.os.Process.myPid()) { android.os.Process.killProcess(runningAppProcessInfo.pid); } } android.os.Process.killProcess(android.os.Process.myPid()); System.exit(0); }
需要注意的坑
1. KillProcess()
android.os.Process.killProcess(android.os.Process.myPid())
可以杀死当前应用活动的进程,这一操作将会把所有该进程内的资源(包括线程全部清理掉)。当然,由于 ActivityManager 时刻监听着进程,一旦发现进程被非正常 Kill,它将会试图去重启这个进程。
这就是为什么,有时候当我们试图这样去结束掉应用时,发现 app 会自动重新启动的原因.
2. System.exit()
System.exit() 是 Java 中结束进程的方法,调用它将关闭当前的 JVM 虚拟机。
//表示是正常退出;
System.exit(0);
//表示是非正常退出,通常这种退出方式应该放在catch块中
System.exit(1);
3. App crash 后重启
利用Android两行代码真正杀死你的App
上面链接中的文章写得很好很全面,参考即可
以上这篇Android 实现彻底退出自己APP 并杀掉所有相关的进程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Android根据包名停止其他应用程序的方法
1.使用killBackgroundProcesses()方法 首先再AndroidManifest.xml文件中添加权限 <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 然后直接调用stopApp(mContext,packageName)方法 public void stopAppByKill(Context context ,String packageNam
-
Android Studio彻底删除项目 Android Studio彻底删除Module
Android Studio这样才能彻底删除项目,具体操作如下 1.Android Studio彻底删除Module 当不需要某个Module(工程)时,删除 在"Project"视图中选择需要删除的module名,此处删除"app",点击右键,选择"Open Module Setting",出现如下界面,然后选择左上角的"-"号,将此module从"Test"项目列表中移除(并没有真正的从硬盘删除) 再次
-
Android普通应用升级为系统应用并获取系统权限的操作
有时候使用某些api需要使用系统权限,如调用PackageInstaller的相关接口,需要android.permission.INSTALL_PACKAGES权限,该权限系统只会授权给系统应用,此时可以考虑将我们的应用升级为系统应用,升级为系统应用有两种方法: 1.将apk放到/system/app目录下,重启手机即可,此方法比较粗暴,而且需要修改/system目录的读写权限,因此需要root,而且随着Android系统版本对权限管理越来越严,root和修改读写权限更繁琐和复杂 2.添加sh
-
Android 实现彻底退出自己APP 并杀掉所有相关的进程
彻底杀掉 App 相关进程的代码 public void killAppProcess() { //注意:不能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程 ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo
-
Android 实现双击退出的功能
实现android双击后退键退出当前APP功能 实现该功能基本思路是, 1, 监听后退键 , 比较两次后退间隔 , 低于两秒则出发退出 2, 退出当前APP 我选择在基类中BaseActivity 中设置监听,代码如下: public void onBackPressed() { //Preferences 中获取是否双击退出 boolean isDoubleClick = true; //BaseApplication.get("ifDoubleClickedBack", true)
-
Android编程之退出整个应用程序的方法
本文实例讲述了Android编程之退出整个应用程序的方法.分享给大家供大家参考,具体如下: 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源.有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽. 后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activity,代码如下: p
-
android Web跳转到app指定页面并传递参数实例
下面将实现 Web跳转到app指定页面并传递参数 总结 先看效果图: h5页面代码: <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title
-
详解Android中的ActivityThread和APP启动过程
ActiviryThread ActivityThread的初始化 ActivityThread即Android的主线程,也就是UI线程,ActivityThread的main方法是一个APP的真正入口,MainLooper在它的main方法中被创建. //ActivityThread的main方法 public static void main(String[] args) { ... Looper.prepareMainLooper(); ActivityThread thread = ne
-
Android编程之高效开发App的10个建议
本文讲述了Android编程之高效开发App的10个建议.分享给大家供大家参考,具体如下: 假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功.这就是为什么在开发中确保最优化.运行流畅而且不会使Android系统出问题 是至关重要的了.这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试.
-
Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)
我们公司做了一款使用百度钱包的移动网页支付进行支付的产品,用户通过百度钱包.百度糯米扫描我们 产品的二维码,选择商品,点击支付将会自动调用百度钱包进行支付,支付成功后返回成功页面,在我们的成功页面有关闭 网页按钮,点击关闭按钮或者返回按钮将会关闭页面. 在百度钱包中使用百度轻应用的BLightApp.closeWindow() 方法可以关闭,但是在百度糯米中,按道理可以使用呀, 但是根本就不行,改成传统的window.close()也不行.当时我们在网上搜索和百度糯米的官网中,都没找到解决方法.
-
Android编程判断当前指定App是否在前台的方法
本文实例讲述了Android编程判断当前指定App是否在前台的方法.分享给大家供大家参考,具体如下: //在进程中去寻找当前APP的信息,判断是否在前台运行 private boolean isAppOnForeground() { ActivityManager activityManager =(ActivityManager) getApplicationContext().getSystemService( Context.ACTIVITY_SERVICE); String packag
-
月下载量上千次Android实现二维码生成器app源码分享
在360上面上线了一个月,下载量上千余次.这里把代码都分享出来,供大家学习哈!还包括教大家如何接入广告,赚点小钱花花,喜欢的帮忙顶一个,大神见了勿喷,小学僧刚学Android没多久.首先介绍这款应用:APP是一款二维码生成器,虽然如何制作二维码教程网上有很多,我这里再唠叨一下并把我的所有功能模块代码都分享出来. 在这里我们需要一个辅助类RGBLuminanceSource,这个类Google也提供了,我们直接粘贴过去就可以使用了 package com.njupt.liyao; import c
-
Android自定义状态栏颜色与APP风格保持一致的实现方法
我们知道iOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果: 实现此功能有两种方法: 1.在xml中设置主题或自定义style: Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.Holo.NoActionBa
随机推荐
- 前端框架Vue.js中Directive知识详解
- 使用Java实现类似Comet风格的web app
- java虚拟机
- js使用递归解析xml
- JavaScript 继承详解(五)
- JS 实现列表与多选框选择附预览动画
- php 一维数组的循环遍历实现代码
- 详解WordPress中过滤链接与过滤SQL语句的方法
- python中Flask框架简单入门实例
- php数组索引与键值操作技巧实例分析
- Node.js中路径处理模块path详解
- bower 强大的管理web包管理工具
- jQuery源码分析-03构造jQuery对象-工具函数
- javascript 3d 逐侦产品展示(核心精简)
- setInterval 和 setTimeout会产生内存溢出
- jquery.validate使用攻略 第三部
- 详解jQuery移动页面开发中的ui-grid网格布局使用
- 基于Jquery与WebMethod投票功能实现代码
- setTimeout和setInterval的浏览器兼容性分析
- Java并发编程之volatile变量介绍