Android 结束进程的方法

转载 2012年03月30日 17:56:13

Android 结束进程,关闭程序的方法,经过这几天的调研,发现了Android结束一个进程的方法

即采用下面这个类

void android.app.ActivityManager.restartPackage(String packageName)

public void restartPackage (String packageName)

Since: API Level 3

Have the system perform a force stop of everything associated with the given application package. All processes that share its uid will be killed, all services it has running stopped, all activities removed, etc. In addition, a ACTION_PACKAGE_RESTARTED broadcast will be sent, so that any of its registered alarms can be stopped, notifications removed, etc.

You must hold the permission RESTART_PACKAGES to be able to call this method.

Parameters

packageName
 The name of the package to be stopped.
 

 

 

使用这个类的具体源代码

Java代码

[java] final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);   
am.restartPackage(getPackageName());   
final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
am.restartPackage(getPackageName());  

再加上uses-permission

 

 

Xml代码

[xhtml] <uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>  
 <uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>  

 

 

结束进程还有android.os.Process.killProcess(pid)只能终止本程序的进程,无法终止其它的

 

public static final void killProcess (int pid)
Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.

 


public void finish ()
Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().

这是结束当前activity的方法

 

 

在android2.2版本之后则不能再使用restartPackage()方法,而应该使用killBackgroundProcesses()方法

manager.killBackgroundProcesses(getPackageName());

 

[c-sharp] ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);      
manager.killBackgroundProcesses(getPackageName());   
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);    
manager.killBackgroundProcesses(getPackageName());  

加入权限

[c-sharp] //需要在xml中加入权限声明    
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 
//需要在xml中加入权限声明 
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

 

 


 

另外,在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己。

 

还有一种最新发现的方法,利用反射调用forceStopPackage来结束进程

 

代码如下

 

[c-sharp] Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class); 
forceStopPackage.setAccessible(true); 
forceStopPackage.invoke(am, yourpkgname); 
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);

 

需要在manifest里加上shareduid定义

[c-sharp] android:sharedUserId="android.uid.system" 
android:sharedUserId="android.uid.system"

 

另外加上权限

[c-sharp] <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission> 
  
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>
 

 

并且采用系统platform签名

 


因为需要用FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序

 

即可实现强制停止指定程序

 

还有一种方法 利用linux的kill -9命令




========上文转摘自别处,未经证实,有空的时候再去验证

相关文章推荐

Android结束进程的方法

直奔主题,现在介绍一下Android中结束进程的几种方法。1.void restartPackage(String packageName) 该方法为@Deprecated,实际调用的是killBa...

Android 结束进程的方法

Android 结束进程,关闭程序的方法,经过这几天的调研,发现了Android结束一个进程的方法 即采用下面这个类 void android.app.ActivityManager.restar...

Android结束进程的方法讨论

对于单一Activity的应用来说,退出很简单,直接finish()即可。 当然,也可以用killProcess()和System.exit()这样的方法。 但是,对于多Activity的应用来说...

Android下结束进程的方法

Android下结束进程的方法   一、结束一个活动Activity   要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity的生命周期函数onDestr...

Android下结束进程的方法

最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。   在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束...

10种强制结束进程方法

  • 2011-09-17 20:29
  • 16KB
  • 下载

cmd下结束进程方法.txt

Android保证进程不被杀掉的方法

今天看到个知识点,如何后台保证service存活**1**onStartCommand方法,返回START_STICKY2提升service优先级AndroidManifest.xml文件中对于int...

Android应用程序在新的进程中启动新的Activity的方法和过程分析

前面我们在分析Activity启动过程的时候,看到同一个应用程序的Activity一般都是在同一个进程中启动,事实上,Activity也可以像Service一样在新的进程中启动,这样,一个应用程序就可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)