我希望我的执行程序能够运行,直到我的服务不再运行。
我想到的逻辑解决方案是对executor.shutdown()
onDestroy()
该行动的后果是什么?
我知道当我杀死某个应用时,它的服务并不能保证通过onDestroy()
,因此执行者永远不会执行shutdown()
如果该服务是前台服务,它会解决该问题吗? 无论如何,这是正确的工作方式吗?
我试图做什么的一般信息 - 我打算访问我的服务上的一个方法,它将更改/添加任务到执行程序。我需要它作为" listener
"直到我不再使用该服务,这就是为什么我不能在任何其他地方关闭它而不是onDestroy()
。
答案 0 :(得分:0)
后果取决于您在执行程序中执行的任务。如果任务未通知关闭,则它们将继续作为关闭运行,仅确保不能提交任何新任务。 您作为守护进程创建执行程序的can do is是什么。 或者您可以按照orderly shutdown
的建议操作需要注意的重要一点是,您的任务不应该使您的数据处于损坏状态,因为它们可以随时关闭。如果要更新数据库,请使用事务;如果要写入文件或套接字,请使用适当的预防措施。