2016-05-12 14 views
0

GCM通知を表示するデフォルトの方法(onMessageReceived()およびGcmListenerServiceを使用しない)を使用すると、アクティビティスタックをそのまま残してアプリをフォアグラウンドにすることができます通知がタッチされたとき?私はアプリのアイコンがタッチされたときと同じ動作を取得したいと思います。現在、通知がタッチされるたびに新しいアクティビティが開始されます。通知がクリックされたときにアクティビティスタックを保持する

編集:

ここでは詳細な状況です。私はそのドキュメントを読んだが、私はまだ希望の動作を得ることができません。私のスタックが次のようになっているとしましょう:

Activity B 
Activity A 

アクティビティBが現在アクティブでアクティブです。ユーザーがサークルボタンを押してからアプリアイコンをもう一度押すと、同じスタックがアクティブになります(再開されます)。

今、このような状況では通知に触れたとき、私はこれを取得:

Activity A 
Activity B 
Activity A 

しかし、私はちょうどこの保存したい:私はすべてのlaunchModeバリアントを試みたが、持っていた

Activity B 
Activity A 

を失敗。

答えて

1

これは、あなたのアクティビティの設定方法と関連があります。たとえば、あなたがマニフェストにあなたの活動singleTop活動を行うことができます。

<activity 
... 
    android:launchMode="singleTop" 
... 
/> 

この方法は、この活動のための新しいIntentのあります場合は、AndroidのOSは、あなたの活動の新しいインスタンスを作るのではなく、プルアップはありません既存のインスタンスに変更し、新しいIntentonNewIntent(Intent)関数に渡します(機能させるには、あなたのアクティビティでそのメソッドをオーバーライドする必要があります)。

さらに多くの方法があります。documentation(「マニフェストファイルの使用」を参照)をチェックして、シナリオに最適なものを確認してください。

+0

ありがとうございます!私はそのドキュメントを読んだが、私はまだ希望の動作を得ることができません。私のスタックが次のようになっているとしましょう: アクティビティB アクティビティA アクティビティBが現在アクティブで、アクティブです。ユーザーがサークルボタンを押してからアプリアイコンをもう一度押すと、同じスタックがアクティブになります(再開されます)。 今、このような状況では通知に触れたとき、私はこれを取得: 活動A 活動B 活動A しかし、私はちょうどこの保存したい:私が試した 活動B 活動A をすべてのlaunchModeバリアントは成功しませんでした。 – user1195883

+0

あなたのアクティビティの順序がわかりませんが、 'yourIntentName.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);':https://developer.androidのような、あなたが設定できるいくつかのインテントフラグを見てください。 com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK – C0D3LIC1OU5

+0

この回答が役に立った場合は、正解としてください。 – C0D3LIC1OU5

関連する問題