インテントフラグと誤解しているようです。私はラジオを持っていますストリーミングアプリケーションには、2つのアクティビティ(PlayerApplicationとSettingsScreen)があります。私は、通知を保持するバックグラウンドで実行されるStreamingのService.classを持っています(通知オーバーレイメニューとPlayerApplicationで再生を停止/開始できます)。ユーザーが通知をクリックすると、PlayerApplicationActivityは画面に戻ります。Android:PendingIntent通知からonCreate()を起動しない場合、アクティビティを画面に戻す
すべてが正常に動作し、ケースを期待しています。ユーザーはSettingsScreenActivityを開く - > NotificationOverlayMenuを開く - >通知でクリック - > 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はバックに活動を持参してくださいトップ。誤ったインテントを使用しているのですか、またはポイントがありませんか?あなたが呼び出しているアクティビティのインスタンスがすでに実行されている場合は、SingleTask
:
EDIT: と私はFLAG_ACTIVITY_CLEAR_TOP
、FLAG_ACTIVITY_SINGLE_TOP
ではと起動モードでは、AndroidデベロッパーsiteによるたManifest.xml
android:launchMode="singleTask"
の
<application-node>
にlaunchModeを宣言singleTop
ないsingleTask
です既に実行中です。あなたは 'onCreate'の代わりに' onNewIntent'コールバックを受け取ります –