基本的に、フォアグラウンド サービスを実行するアプリケーションがあります。アプリケーションを起動したら、アプリケーションのonCreate
メソッドでセッション固有の初期化を行う必要があります。
アプリを閉じると、サービスは実行され続けますが (望ましい動作)、ランチャーまたは通知からアプリを再度開くと、アプリケーションonCreate
が再度呼び出されません。
私の質問は次のとおりです。
onCreate
サービスが実行されている場合でも、アプリケーションが再度呼び出されるようにするにはどうすればよいですか? (サービスはおそらくアプリケーション オブジェクトへの参照を保持していますよね?)- アプリがサービスから再起動されたことを Application クラス内で表示する方法はありますか?
- 他にどのような解決策を考えられますか?
の MyService AndroidManifest.xml
:
<service android:name=".MyService"
android:exported="false"/>
私のサービスonStartCommand
:
createNotificationChannel();
Intent notificationIntent = new Intent(this, MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("My Service")
.setContentText("Service")
.setSmallIcon(R.drawable.ic_android)
.setContentIntent(pendingIntent)
.build();
startForeground(1, notification);