Kill another application on Android?
I am try to kill my another application. But this code is not able to kill my another application. I know to kill another application is a bad idea. But I have a learning purpose, and I have tried to kill. My code part:
Button runningApp = (Button) findViewById(R.id.runningApp);
runningApp.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String nameOfProcess = "com.example.filepath";
ActivityManager manager = (ActivityManager)ApplicationActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses)
{
if (process.processName.contains(nameOfProcess))
{
Log.e("Proccess" , process.processName + " : " + process.pid);
android.os.Process.killProcess(process.pid);
android.os.Process.sendSignal(process.pid, android.os.Process.SIGNAL_KILL);
manager.killBackgroundProcesses(process.processName);
break;
}
}
}
});
I have added Permissions, and they are:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.GET_TASKS" />
Every time I can see the LogCat, the particular application is running in the background. Where am I mistaken?
Solution 1:
You can only kill a process that has the same userID as the one that is doing the killing. If you are trying to kill your own process it should work. Otherwise you can't do it (unless you have a rooted device and your application has root priviledges).
Solution 2:
If your device is rooted and your app is located in /system/app then you can kill another app by disabling and enabling it via:
pm.setApplicationEnabledSetting(packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
pm.setApplicationEnabledSetting(packageName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
This will kill the app and make it accessible once again. Note that homescreen shortcuts disappear though.