画面のオン/オフを処理するサービスを実装したい。そのために、BootReceiver
起動完了時に呼び出されるものを作成し、その中でサービスを開始しました。
しかし、OnCreate
なぜ呼ばれないのですか?
プログラムのログを印刷すると、 のログは表示されますが、 のログは表示onCreate
されませんonStartCommand
。これはどのように可能ですか?これを理解するのを手伝ってください。
これはBootReceiver
、最初に呼び出されるものです。
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("TAG", "BootReceiver");
Intent service = new Intent(context, ScreenListenerService.class);
context.startService(service);
}
}
これはサービスです:
public class ScreenListenerService extends Service {
public void OnCreate(){
super.onCreate();
Log.w("TAG", "ScreenListenerService---OnCreate ");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.w("TAG", "ScreenListenerService---onStart ");
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
そしてマニフェスト:
<service android:name=".ScreenListenerService"></service>
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
</intent-filter>
</receiver>