服务或线程或AsyncTask?

时间:2011-11-26 16:31:35

标签: android multithreading service android-asynctask

我需要为我的最新应用提供建议。它会向用户显示最新发布的字幕,如果他最喜欢的系列的新字幕已经发布,它会给他一个通知;我应该用什么来实现这个目标? 我正在考虑创建并运行一个包含

的服务
timer.scheduleAtFixedRate(new TimerTask() {...

但与此同时我真的不知道如何让它与我的应用程序进行交互(如果应用程序打开,我不需要任何通知,但我需要更新GUI)。 我可以使用一个线程,但我希望它甚至在主要活动被杀之后运行它... 或者我可以使用AsyncTask,因此处理Application GUI会更容易。 我应该使用哪种解决方案?我以为我应该简单地使用服务(第一个解决方案),但我不太确定它,而且我不知道是否有任何方法可以让服务定期与活动通信... 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

与活动沟通的服务称为绑定服务,这是您应该使用IMO的内容。

但是,您说当活动消失时,服务应该继续运行。但是,如果服务绑定到您的活动并且活动已经死亡,则服务也会死亡。

我建议你阅读here

检查并查看是否可以将服务绑定到活动,当它死亡时,取消绑定并让服务继续独立运行。

如果你不能,活动可以解除绑定,然后独立启动服务(使用startService而不是bindService)。

答案 1 :(得分:0)

如果您要显示通知,为什么不使用C2DM消息与应用程序通信。唯一的问题是,即使您的应用未运行,也会向用户显示弹出窗口。无需使用线程/服务。