Android怎么结束一个进程,我试了用 ActivityManager.killBackgroundProcesses方法去结束,但是没有反应

在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己。
有一种最新发现的方法,利用反射调用forceStopPackage来结束进程
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname); 

需要在manifest里加上shareduid定义
android:sharedUserId="android.uid.system"  

另外加上权限
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission> 

并且采用系统platform签名
因为需要用FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序
即可实现强制停止指定程序

还有一种方法 利用linux的kill -9命令
我也是网上看的,具体行不行,你试试吧

参考资料: http://blog.csdn.net/Zengyangtech/article/details/5733631

//结束整个应用进程

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

manager.killBackgroundProcesses(getPackageName());

时间: 2024-10-12 20:20:46

Android怎么结束一个进程,我试了用 ActivityManager.killBackgroundProcesses方法去结束,但是没有反应的相关文章

Android ActivityManager.killBackgroundProcesses方法去结束

android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己.有一种最新发现的方法,利用反射调用forceStopPackage来结束进程Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);forceStopPackage.setAccessible(true);forceSto

Linux中强制结束一个进程的终极方法

在 Linux Ubuntu 服务器上用 dnx 基于 Kestrel 成功运行一个 ASP.NET 5 站点后,怎么也无无法退出. 运行的命令如下: /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrelStarted 但运行之后,怎么也退不出.不管是按回车,还是按ctrl-C,还是按ctrl-Z. Started ^C^Z 直接关闭客户端 ssh 窗口,命令依然在运行,站点依然可以正常访问. 然后重新用 ss

使用强制性的手段来结束一个进程

VOID ExitThread( DWORD dwExitCode); dwExitCode  指定此线程之结束代码 没有返回值 这函数有点像C runtime library中的exit()函数,因为他可以在任何时候调用并且绝不会返回.任何代码若放在此行之下,保证不会被执行. #define WIN32_LEAN_AND_MEAN #include <stdlib.h> #include <stdio.h> #include <Windows.h> DWORD WIN

Android Studio implements 一个类后如何实现这个类的方法

public class BDLocationListenerImpl implements BDLocationListener 1.首先选中BDLocationListener,然后右键 2. 选择Generate,出现下图: 3.选择 Implement Methods,出现下图 4.选择要实现的方法,完毕. 另外,可以用快捷键CTRL+n 会弹出第一张图界面.

Android下写一个永远不会被KILL掉的进程/服务

Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存.这样就能保证真正对用户有用的程序仍然再运行.如果你的 Service 碰上了这种情况,多半会先被杀掉.但如果你增加 Service 的优先级就能让他多留一会,我们可以用 setForeground(true) 来设置 Service 的优先级. 为什么是 fo

【Android进阶】Junit单元測试环境搭建以及简单有用

单元測试的目的 首先.Junit单元測试要实现的功能,就是用来測试写好的方法是否可以正确的运行,一般多用于对业务方法的測试. 单元測试的环境配置 1.在AndroidManifest清单文件的Application节点下.引入单元測试使用的库 2.在AndroidManifest清单文件与Application节点平行的节点中.加入instrumentation节点 以下是一个完整的配置的代码 <manifest xmlns:android="http://schemas.android.

android 中 任务、进程和线程的区别

任务.进程和线程 关于Android中的组件和应用,之前涉及,大都是静态的概念.而当一个应用运行起来,就难免会需要关心进程.线程这样的概念.在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的. Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难度,帮助大家更好的进行开发和配置. 任务 在SDK中关于Task(guide/topics/fu

Android核心基础学习进程

第一天:  adb命令:  adb devices 列出所有的设备  adb shell 挂载到Linux的空间,可以执行Linux指令  adb install xxx.apk 如果多个设备adb install -s 设备名  adb push 把文件推到手机里  adb pull把文件从手机里拉出来  netstat -ano查看端口号  taskkill /pid pid /f 杀死pid对应的进程 电话拨号器  1.找到控件并且得到控件对象   et_phone = (EditText

Android中AIDL实现进程通信(附源码下载)

AIDL概述 之前的博客<Android中通过Messenger与Service实现进程间双向通信>演示了如何通过Messenger实现与Service进行跨进程通信,即IPC.但用Messenger实现的IPC存在一点不足:Service内部维护着一个Messenger,Messenger内部又维护着一个Hanlder,当多个client向该Service发送Message时,这些Message需要依次进入Hanlder的消息队列中,Hanlder只能处理完一个Message之后,再从消息队