2
我发现,当一个广播接收器开始服务在的onReceive()方法中,的onReceive(返回)将之前发生的顺序正在调用服务的onCreate()。为什么按照这个顺序发生?当广播接收器启动的服务
的示例代码如下:BroradcastReceiver
的onReceive()
方法:
public void onReceive(Context context, Intent intent) {
Log.i("=====Receiver=======","===== onReceive starts===="); // (1)
intent.setClass(context, AService.class);
context.startService(intent);
Log.i("=====Receiver=======","===== onReceive ends===="); // (2)
}
Service
的onCreate()
方法:
public void onCreate(){
Log.i("=======Service========", "========OnCreate()=== "); //(3)
// some logic here
}
日志顺序为(1)(2)(3),不是(1)(3)(2)。
有人可以帮忙解释吗?
感谢您的答复。我认为发布意图比“服务有其自己的线索”更合理。因为我发现服务启动时没有创建新的线程。但我不确定startService()的细节。无论如何,再次感谢。 – Harry