是否从MainActivity和碎片复制线程开始服务?

我从MainActivity以及Fragment开始后台服务。是否从MainActivity和碎片复制线程开始服务?

它会创建重复线程吗?所以这将是2服务运行?

MainActivity

protected void onCreate(Bundle savedInstanceState) { 

//...

context.startService(new Intent(context,gps_service.class));

//...

片段

public class FragmentThree extends Fragment { 

//... Click method of the button calls

getActivity().startService(new Intent(getActivity(),gps_service.class));

回答:

它会创建重复的主题?所以这将是2服务运行?

NO只有一个服务将被推出,只有一个会运行

回答:

只会有一个服务运行。。

它会创建重复线程吗?所以这将是2服务运行?

每次调用startService()可能有两种可能性。

  1. 如果Service in not previously previously then it will start per life cycle。 onCreate - > onStartCamm​​and等等。

  2. 如果服务先前已启动,则只有onStartCamm​​and()将以您传递给它的所需意图被调用。

回答:

每个Service只存在一个实例。如果您的服务已在运行,那么如果您尝试重新启动,则会调用onStartCommand(Intent, int, int)

从Android Official site

注意:一种服务,它的宿主进程的主线程中运行;该服务不会创建自己的线程,也不会在单独的进程中运行,除非您另行指定。

所以默认Service使用主线程和IntentService使用后台线程。如果您想要执行一些长时间运行的任务,请使用IntentService或在Service中创建后台线程。

详细检查this

以上是 是否从MainActivity和碎片复制线程开始服务? 的全部内容, 来源链接: utcz.com/qa/261699.html

回到顶部