当我们按下硬件按钮"最近使用的应用程序",并在"最近使用应用程序"窗口删除应用程序时,系统级会发生什么?在用户级别,应用程序将从列表中删除,如果应用程序已启动服务,则会丢失应用程序进程并重新启动。
我需要通过软件从自己的应用程序中重复这个用户操作(从最近的应用程序列表中删除程序),以及所有相关的系统过程。或者由其他应用程序从列表中删除。
通过Android清单隐藏应用程序(如Android:excludeFromRecents)是不合适的。
谁能在这件事上帮忙,请提出解决办法。
当您从最近的应用程序列表中删除一个条目时,您正在删除与应用程序进程相关的任务(该进程可以包含多个活动)。你可以通过软件做到这一点,但你需要两个权限,只有当你的应用程序具有系统级权限时才能使用(事实并非如此,因为只有固件级应用程序才能具有特殊的签名密钥)。查看此响应。
此解决方案对我有帮助:
安卓SDK 21有finishAndRemoveTask的方法,它解决了这个问题。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
finishAndRemoveTask();
} else
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
{
finishAffinity();
} else
{
finish();
}
}
Process.killProcess(Process.myPid());