2012-07-02 59 views
1

我正在开发一个定期从服务器获取数据的应用程序。现在我使用的是ScheduledThreadPoolExector,但我认为它不够干净,所以我决定使用AlarmManager来创建定期任务。广播接收器或服务的长背景操作?

哪个更适合这个任务:BroadcastReceiver还是Service?我读过其中的一个有10秒的限制,或者都有这个限制?

回答

1

实际上,BroadcastReceiver只能活10秒。服务可以寿命更长(取决于Android操作系统是否需要资源,它可以杀死你的应用程序)。

您的服务可以是“普通”服务或IntentService(在没有更多意向可供处理后自动终止)。 我会推荐一个IntentService。

您可以创建一个将由IntentService接收的Intent,并将此Intent添加到AlarmManager。

+0

作为@PoweRoy提到的,只需使用'BroadcastReceiver'从'AlarmManager'获得通知并让'Service'做长期工作即可...... – herom