方法1、使用MyApplication.java文件代码如下:

package com.ss.zshcloud.utils;

import android.app.Activity;

import android.app.Application;

import java.util.LinkedList;

import java.util.List;

public class MyApplication extends Application {

//用于将所有activity存在一起用于最后统一finish便于退出

private ListactivityList = new LinkedList();

private static MyApplication instance;

private MyApplication()

{

}

//单例模式中获取唯一的MyApplication实例

public static MyApplication getInstance()

{

if(null == instance)

{

instance = new MyApplication();

}

return instance;

}

//添加Activity到容器中

public void addActivity(Activity activity)

{

activityList.add(activity);

}

//遍历所有Activity并finish

public void exit()

{

for(Activity activity:activityList)

{

activity.finish();

}

System.exit(0);

}

}

最后再MyApplication.getInstance().exit();方法可以退出那些简单程序。

方法2、使用System.Exit(0),之前不关闭所有activity和service会重启app。

方法3、使用SuUtil.java代码如下:

package com.ss.zshcloud.utils;

import java.io.IOException;

import java.io.OutputStream;

public class SuUtil {

private static Process process;

/**

* 结束进程,执行操作调用即可

*/

public static void kill(String packageName) {

initProcess();

killProcess(packageName);

close();

}

/**

* 初始化进程

*/

private static void initProcess() {

if (process == null)

try {

process = Runtime.getRuntime().exec("su");

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 结束进程

*/

private static void killProcess(String packageName) {

OutputStream out = process.getOutputStream();

String cmd = "am force-stop " + packageName + " \n";

try {

out.write(cmd.getBytes());

out.flush();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 关闭输出流

*/

private static void close() {

if (process != null)

try {

process.getOutputStream().close();

process = null;

} catch (IOException e) {

e.printStackTrace();

}

}

}

调用SuUtil.kill(包名)会完全退出app,但该app需要设置root权限。

方法4、最后成功的方法

int currentVersion = android.os.Build.VERSION.SDK_INT;

Log.i("println","currentVersion:"+currentVersion+" android.os.Build.VERSION_CODES.ECLAIR_MR1:"+android.os.Build.VERSION_CODES.ECLAIR_MR1);

if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) {

Intent startMain = new Intent(Intent.ACTION_MAIN);

startMain.addCategory(Intent.CATEGORY_HOME);

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

mContext.startActivity(startMain);

System.exit(0);

} else {// android2.1

ActivityManager am = (ActivityManager)mContext. getSystemService(Context.ACTIVITY_SERVICE);

am.restartPackage(mContext.getPackageName());

}

androidmanifest.xml方要添加权限:

android 强制退出程序,Android 强制且彻底的退出app相关推荐

  1. mac如何强制退出程序?强制退出程序的六种方法

    2019独角兽企业重金招聘Python工程师标准>>> mac如何强制退出程序?强制退出程序的六种方法 方法/步骤 第一种方法:通过键盘强制退出当前能够响应的 Mac 应用. 按住 ...

  2. c语言 强制退出程序,C#实现点击按钮退出应用程序实例

    最近在做一个程序,要求先登陆后再进入界面.因此,若是用户取消登陆,则要退出应用程序. 注意,用于重新设计了登陆界面,FormBorderStyle设置的为None,因此窗体右上角并没有关闭的按钮,按照 ...

  3. android fragment 退出程序,android – 应用程序在Fragment中单击后退按钮后关闭

    [UPDATE] 问题解决了:只需在提交片段之前添加"addToBackStack(null)": Fragment fragment = new WebBrowserFragme ...

  4. android app 退出功能,Android 应用技巧: 手把手教你 优雅实现 “一键退出 App”

    前言 在 Android开发中,会经常存在 "一键退出App" 的需求 但市面上流传着 太多不可用的"一键退出App"功能实现 本文将全面总结"一键退 ...

  5. Android通过广播实现强制下线功能

    Android通过广播实现强制下线功能 我们首先定义一个activity集合类,在这个类里面主要添加三个方法,分别是 1.添加activity 2.删除activity 3.关闭所有activity ...

  6. 被罚 50 亿后,Google 不再强制绑定 Android 默认引擎!

    这一次,因垄断的问题,Google 是放弃了 Android 中一块"大饼",还是又借此找到了新的"商机"? 整理 | 屠敏 出品 | CSDN(ID:CSDN ...

  7. android#boardcast#广播实现强制下线功能

    参考自<第一行代码>--郭霖 强制下线功能需要先关闭掉所有的活动(Activity),然后回到登录界面.先创建一个ActivityCollector类用于管理所有的活动,代码如下所示: p ...

  8. android强制选择器,谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制

    原标题:谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制 IT之家4月26日消息 在Android Q的首个Beta版中,谷歌推出了一个隐藏的.激进的隔离存储沙盒机制,名为"Sc ...

  9. MT6739 Android 8.1 取消强制data分区加密,recovery时候挂载data分区

    MT6739 Android 8.1 取消强制data分区加密,recovery时候挂载data分区 注意:不取消data分区加密的话,recovery时候无法挂载data分区! 取消data分区默认 ...

最新文章

  1. python2x NameError: name ‘abc‘ is not defined
  2. (chap4 IP协议)IP地址
  3. 文件操作-使用readline分行读取大文件
  4. 音视频技术开发周刊 | 172
  5. mybatis_user_guide(7) SQL语句构建器类
  6. 深入理解C# 静态类与非静态类、静态成员的区别 [转载]
  7. 用指针比较三个数大小_《测量力的大小》教案
  8. php.ini 开启zend,php之ZendFramewor篇(1)application.ini配置说明
  9. linux 截图软件安装,Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
  10. JAVA计算机毕业设计幼儿园管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  11. idea 代码格式化 无效
  12. java创建http接口
  13. python数据科学包第三天(股票数据分析、时间事件日志)
  14. WiFi无线网络的几种认证与加密方式
  15. 微信H5如何直接关注公众号
  16. 内存溢出(out of memory)是内存不足吗?Outofmemory error怎么解决?
  17. msrcr(Multi-Scale Retinex with Color Restoration) 带色彩恢复的多尺度视网膜增强算法 整理
  18. 关于Kaggle入门,看这一篇就够了
  19. vue根据url获取内容axios_使用Vue.js和Axios从第三方API获取数据 — SitePoint
  20. JavaScript系列之FileReader

热门文章

  1. 路由巧设置 局域网轻松限制BT下载
  2. 采用seam2的工具创建seam工程
  3. 视频画面显示单位fps与Hz的区别
  4. Svelte入门——Web Components实现跨框架组件复用(二)
  5. 阿里天池大数据竞赛第一名,如何用AI检测肺癌
  6. php中如何过滤关键字,PHP - 过滤关键字
  7. 程序员必须收藏的 58 个网站
  8. 【概率论】贝叶斯法则
  9. uart口图片_串口(USART)框图的讲解
  10. MoveIt! RViz Visual Tools设置