2
は私がBroadcastReceiverがサービスを開始したときにonReceive()メソッド、onReceive(の復帰で)の前に起こるだろうことがわかりサービスを開始順序onCreate()が呼び出されています。これはなぜこの順番で起こるのですか?BroadcastReceiverが
コード例は以下である: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