我们在Service、IntentService、Runnable和Thread之间应该选择哪一个?

7 浏览
0 Comments

我们在Service、IntentService、Runnable和Thread之间应该选择哪一个?

这个问题已经有了答案:

在Android平台上的Service vs IntentService

我正在构建一个Android应用程序,我需要定期检查BBDD值,大约每60秒。当应用程序找到该值时,将发送一个值到应用程序以更新UI中的数据值。

我的应用程序有一个名为MainActivity的活动,并使用来自支持FragmentManager的begintransaction方法更改片段与NavigationDrawer。

在这种情况下使用什么?

admin 更改状态以发布 2023年5月22日
0
0 Comments

查看以下文章

何时使用?

Service可用于没有UI的任务,但不能太长。如果需要执行长时间的任务,则必须在Service内使用线程。

IntentService通常用于长时间的任务,通常没有与主线程的通信。如果需要通信,可以使用主线程处理程序或广播意图。需要回调的另一种用法是(由Intent触发的任务)。

如何触发?

通过调用startService()方法来触发服务。

使用意图触发IntentService,它会生成一个新的工作线程,并在该线程上调用onHandleIntent()方法。

触发源

Service和IntentService可以从任何线程、活动或其他应用程序组件触发。

运行在

服务在后台运行,但在应用程序的主线程上运行。

IntentService在一个单独的工作线程上运行。

限制/缺点

服务可能会阻止应用程序的主线程。

IntentService无法并行运行任务。因此,所有连续的意图都将进入工作线程的消息队列中,并按顺序执行。

何时停止?

如果实现了一个Service,则负责在工作完成后调用stopSelf()或stopService()来停止服务。(如果您只想提供绑定,则无需实现此方法。)

IntentService在处理完所有启动请求之后停止服务,因此您永远不需要调用stopSelf()。

0