我无法杀死android xamarin中的应用程序(Force Stop App)

时间:2017-10-03 14:51:10

标签: android xamarin

我希望在活动销毁后强制停止我的应用程序,我尝试使用

 Process.KillProcess(Process.MyPid());

应用停止,但仍然可以在设置>应用

中强制再次停止它

我也尝试通过此代码停止它

 ActivityManager am = (ActivityManager)GetSystemService(Context.ActivityService);
  am.KillBackgroundProcesses("TurkeyanaCall.TurkeyanaCall");

但我得到了

  

发生未处理的异常。

我想从我的应用程序中单击此按钮

enter image description here

2 个答案:

答案 0 :(得分:1)

  

未处理的例外:

     

Java.Lang.SecurityException:权限拒绝:来自pid = 2440的killBackgroundProcesses(),uid = 10554需要android.permission.KILL_BACKGROUND_PROCESSES

正如document所说,KillBackgroundProcesses

  

让系统立即终止与给定包关联的所有后台进程。这与杀死那些进程以回收内存的内核相同;系统将根据需要在将来重新启动这些流程。

     

需要KILL_BACKGROUND_PROCESSES权限。

您应该添加权限:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

然后你可以使用它:

 ActivityManager am = (ActivityManager)GetSystemService(Context.ActivityService);
 am.KillBackgroundProcesses(PackageName);
 Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
 Java.Lang.JavaSystem.Exit(0);

答案 1 :(得分:0)

我还用它来杀死app中使用的所有进程。

首先我停止了所有服务,然后我完全从下面的代码解释这个地方的任何地方杀了应用程序。

try{
    StopService(new Intent(this, typeof(CallService)));
    StopService(new Intent(this, typeof(TwilioClientService)));
    } catch(Exception ee){ }
    ActivityManager am = (ActivityManager)GetSystemService(Context.ActivityService);
    am.KillBackgroundProcesses("TurkeyanaCall.TurkeyanaCall");
    Android.OS.Process.SendSignal(Android.OS.Process.MyPid(), Signal.Kill);