I start a background service from public int convert2(byte b1, byte b2) {
return new BigInteger(new byte[]{b2,b1}).intValue();
}
and as well as from MainActivity
.
Will it create duplicate threads? So It will be 2 services running?
MainActivity
Fragment
Fragment
protected void onCreate(Bundle savedInstanceState) {
//...
context.startService(new Intent(context,gps_service.class));
//...
答案 0 :(得分:2)
Will it create duplicate threads? So It will be 2 services running?
NO only one service will be launched and only one will running
答案 1 :(得分:2)
只会运行一项服务。。
它会创建重复的线程吗?那么它将运行2个服务吗?
每次调用startService()时都有两种可能性。
如果之前未启动Service,则它将按其生命周期启动。 onCreate - > onStartCammand 等等。
如果以前启动了服务,则只会通过 onStartCammand()调用您已传递给它的所需意图。
答案 2 :(得分:1)
每个Service
只存在一个实例。如果您的服务已在运行,那么如果您尝试重新启动,则会调用onStartCommand(Intent, int, int)
。
警告:服务在其托管进程的主线程中运行;除非另外指定,否则该服务不会创建自己的线程,也不会在单独的进程中运行。
因此默认情况下Service
使用主线程,IntentService使用后台线程。如果您想执行一些长时间运行的任务,请使用IntentService
或在Service
中创建后台线程。
有关详情this