当用户更改首选项时,我需要重新启动应用程序。清除堆栈对我没有帮助,因为这不会取消后端服务调用。我想杀死应用程序进程本身。我在用
Process.killProcess(Process.myPid());
它对我来说可以杀死应用程序。但我需要的是重新启动应用程序。意味着终止进程并触发一个新进程,以便应用程序再次重新启动。
有没有办法做到这一点?
提前致谢。
最佳答案
这不是人们应该在测试环境之外尝试做的事情。
也就是说,两个想法:
1)在不久的将来设置一个警报,然后终止您的进程
2)启动其他东西(可能是一个小的本地进程或shell脚本),它将检测你的死亡并通过 Intent 重新启动你
你也可以尝试激发一个 Intent ,让自己开始然后快速死亡,但这听起来像是一个潜在的竞争条件,具体取决于实现。如果您从/proc 中获取了 binder fd 并在 native 代码中做了坏事,您可能能够以这样一种方式触发 Intent ,即您的应用程序在从 ioctl 返回时崩溃...