Android 从不同的应用程序中删除后台服务
我有两个独立的应用程序,第一个应用程序有一个持续运行的后台服务(粘性),在第二个应用程序中,我想终止该服务,因此它会重新启动。 我尝试使用Android 从不同的应用程序中删除后台服务,android,android-service,Android,Android Service,我有两个独立的应用程序,第一个应用程序有一个持续运行的后台服务(粘性),在第二个应用程序中,我想终止该服务,因此它会重新启动。 我尝试使用killbackgroundprocesss(),但没有成功(我向清单中添加了权限)。 我甚至可以从其他应用程序中终止该服务,如果可以,如何终止?如果您有Root用户和超级用户,请尝试使用以下代码: ActivityManager activityManager = ((ActivityManager)getSystemService( Context.ACT
killbackgroundprocesss()
,但没有成功(我向清单中添加了权限)。
我甚至可以从其他应用程序中终止该服务,如果可以,如何终止?如果您有Root用户和超级用户,请尝试使用以下代码:
ActivityManager activityManager = ((ActivityManager)getSystemService( Context.ACTIVITY_SERVICE));
...
Runnable runnable = new Runnable() {
@Override
public void run() {
Process processSUkill9 = Runtime.getRuntime().exec( "su");
DataOutputStream dataOutputStreamSUkill9 = new DataOutputStream( processSUkill9.getOutputStream());
DataInputStream dataInputStreamSUkill9 = new DataInputStream( processSUkill9.getInputStream());
}
};
new Thread( runnable).start();
...
// and kill app
dataOutputStreamSUkill9.writeBytes( "kill -9 " + processInfo.pid + "\n");
dataOutputStreamSUkill9.flush();
// where processInfo is item from RunningAppProcessInfo
// example
// for( RunningAppProcessInfo processInfo : activityManager.getRunningAppProcesses())
// if( processInfo.processName.compareTo( "package.for.close") == 0)
您也可以通过以下方式尝试停止应用程序:
Method forceStopPackage = activityManager.getClass().getDeclaredMethod( "forceStopPackage", String.class);
forceStopPackage.setAccessible( true);
forceStopPackage.invoke( activityManager, "package.for.close");
第二种方法是否需要根访问权限?不,这不需要根访问权限,但在上一个android版本中可能无法使用