是否从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()可能有两种可能性。
如果Service in not previously previously then it will start per life cycle。 onCreate - > onStartCammand等等。
如果服务先前已启动,则只有onStartCammand()将以您传递给它的所需意图被调用。
回答:
每个Service
只存在一个实例。如果您的服务已在运行,那么如果您尝试重新启动,则会调用onStartCommand(Intent, int, int)
。
从Android Official site
注意:一种服务,它的宿主进程的主线程中运行;该服务不会创建自己的线程,也不会在单独的进程中运行,除非您另行指定。
所以默认Service
使用主线程和IntentService使用后台线程。如果您想要执行一些长时间运行的任务,请使用IntentService
或在Service
中创建后台线程。
详细检查this
以上是 是否从MainActivity和碎片复制线程开始服务? 的全部内容, 来源链接: utcz.com/qa/261699.html