Android ブートでサービスを開始
問題ステートメント
必要なコンポーネントを慎重に構成しているにもかかわらず、 Android の起動中に IntentService の開始に失敗します。エラー メッセージは報告されず、この問題について困惑することになります。
解決策
ステップ 1: AndroidManifest.xml 構成を確認する
AndroidManifest.xml に次のエントリが存在することを確認してくださいファイル:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:name=".StartupIntentReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
ステップ 2: Startup 用の BroadcastReceiver の実装
StartupIntentReceiver で、次の行を次の行に置き換えます:
context.startService(serviceIntent);
の以下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(serviceIntent); } else { context.startService(serviceIntent); }
ステップ 3: デバッグ用のログの追加
問題を特定するには、StartupIntentReceiver の onReceive ハンドラーにログ ステートメントを追加します。次に例を示します。
Log.v("BatteryLogger", "Got to onReceive, about to start service");
ステップ 4:トラブルシューティング
以上がAndroid IntentService が起動時に開始しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。