我正在构建一个Android应用程序,我需要定期检查一个BBDD值,大约每60秒一次。当应用找到它时,将向app发送一个值以更新UI中的数据值。
我的应用程序有一个名为MainActivity的Activity,并使用NavigationDrawer和来自supportFragmentManager的begintransaction方法更改片段。
在这种情况下使用什么?
答案 0 :(得分:0)
查看以下post
何时使用?
该服务可用于没有UI的任务,但不应太长。如果需要执行长任务,则必须使用Service中的线程。
IntentService可用于长任务,通常不与主线程通信。如果需要通信,可以使用主线程处理程序或广播意图。另一种使用情况是需要回调(Intent触发任务)。
如何触发?
通过调用方法startService()来触发服务。
使用Intent触发IntentService,它会生成一个新的工作线程,并在此线程上调用onHandleIntent()方法。
从
触发可以从任何线程,活动或其他应用程序组件触发Service和IntentService。
运行
服务在后台运行,但它在应用程序的主线程上运行。
IntentService在一个单独的工作线程上运行。
限制/缺点
服务可能会阻止应用程序的主线程。
IntentService无法并行运行任务。因此,所有连续的意图将进入工作线程的消息队列,并将按顺序执行。
什么时候停止?
如果您实现了服务,则您有责任在完成工作后通过调用stopSelf()或stopService()来停止服务。 (如果您只想提供绑定,则无需实现此方法。)
IntentService在处理完所有启动请求后停止服务,因此您永远不必调用stopSelf()。