私はインテント フラグについて誤解していると思います。バックグラウンドで実行されるストリーミング用のService.classがあり、通知も保持されます(通知オーバーレイメニューとPlayerApplicationで再生を停止/開始できます)。ユーザーが通知をクリックすると、PlayerApplicationActivity が画面に戻る必要があります。
ケースを期待して、すべて正常に動作します: ユーザーが SettingsScreenActivity を開く -> NotificationOverlayMenu を開く -> Notification をクリックする -> PendingIntent が PlayerApplicationActivity に再開する
さて、PlayerApplicationScreen はありますが、何もクリックできません。通知から再開すると、PlayerApplication の onCreate() がトリガーされないことがわかります。しかし、レイアウトはうまく見えます(onCreate()でも膨張しています)
Service.class で次の PendingIntent を使用しました。
PendingIntent contentIntent = PendingIntent.getActivity(
this.getApplicationContext(), //Service.class
0,
new Intent(this,PlayerApplicationActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP),
0);
したがって、実際には、PendingIntent はアクティビティ (既に実行されている場合) を一番上に戻す必要があります。間違ったインテントを使用していますか、それともポイントがありませんか?
編集:そして私はManifest.xmlでlaunchModeを宣言しました
android:launchMode="singleTask"