我在我的程序中使用Intent Service。在Intent Service中,我有一个计时器任务线程,每15分钟运行一次。因为它在一个新线程中运行,除了从线程本身内部之外没有办法阻止它,这在我的情况下是不可能的。所以,我希望能够将timer对象的引用从初始活动传递给Intent Service。使用该引用,我可以开始或停止时间任务吗?
如何做到这一点?
答案 0 :(得分:2)
在Intent Service中,我有一个计时器任务线程,每15分钟运行一次。
这是一个非常糟糕的主意。
首先,它不起作用。只要IntentService
返回,onHandleIntent()
就会关闭。你真正在做的是泄漏一个帖子。
其次,它要求Service
始终保留在内存中,这是Android中的反模式。
请每隔15分钟使用AlarmManager
向IntentService
发送命令,然后摆脱计时器任务。
通过这样做,您不再需要担心在活动和服务之间传递这种对象。