2016-09-29 100 views
0

我想知道有什么办法可以阻止我的android应用程序从任务管理器中查杀。无论是任何第三方应用程序,从RAM管理器清除或用户点击强制停止。我只是不想从后台杀死我的应用程序,它应该运行。有什么办法可以阻止我的android应用程序被杀吗?

+0

的可能的复制[安卓:保持后台服务还活着(防止处理死亡)(http://stackoverflow.com/questions/3856767/android-keeping-a-background-service-alive-preventing-过程死亡) –

+0

我认为应用程序有时甚至会被系统杀死..但是您可以运行服务背景,即使应用程序被杀死也可以工作。可以实施闹钟管理器,以便即使应用程序被杀或处于睡眠模式,任何特定的任务可以实施.. [http://stackoverflow.com/questions/4459058/alarm-manager-example] –

+0

你能告诉我们为什么你想这样做? –

回答

1

如何禁用 “强制停止” 按钮

简短的回答:使用Device Administration API.

如何证明它的作品?

是的,回到你的工作。使用上面提供的API链接以及谷歌的sample collection中包含的Api Demos来了解如何将其集成到您的应用中。

  1. 构建演示并在设备上运行它。
  2. 选择API Demos->App->Device Admin->General->Enable admin.
  3. 选择设备管理API在其启用屏幕提示您时激活。
  4. 退出应用程序并尝试通过设备的设置菜单管理应用程序(此步骤的具体细节因设备而异)。
  5. 当查看Api Demo的“应用程序信息”屏幕时,您应该看到禁用强制停止和卸载。

如何在我自己的应用程序中执行此操作?

评论DeviceAdminSample.javaAPI演示应用的灵感。你将需要:

下面的代码是什么带来了激活屏幕:

// Launch the activity to have the user enable our admin. 
       Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
       intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample); 
       intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, 
         mActivity.getString(R.string.add_admin_extra_app_text)); 
       startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN); 

不过,也有一些其他的作品,你将需要得到这个工作:

  1. 从DeviceAdminReceiver派生的广播接收器。
  2. 清单文件中涉及上述广播接收器的条目。
  3. 清单中使用设备管理器API的权限。
  4. 一个xml文件,说明您的应用可以访问哪些策略。

所有这些都可以在上面的链接中找到。祝你的客户好运!

+0

这是非常有用的,而且工作。但是我们可以以某种方式禁用任务管理器吗? – Ace

0

这可能是一个肮脏的方式来做到这一点。但它为我工作。

只需覆盖onDestroy()方法并重新启动该服务即可。

@Override 
public void onDestroy() { 
    Intent intent = new Intent(this,YourService.class); 
    startService(intent); 
}