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 并杀掉所有相关的进程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 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

随机推荐