0

私が取り組んでいるアプリの流れにいくつか問題があります。 基本的に、私はいつも通知を保持しているサービスを持っています。通知を押すと、アプリケーションの直近のアクティビティに戻る必要があります(再開することは意味しません)。 また、特定のアクティビティ(もしかしたら他のもの)で、私はバックボタンをクリックするとアプリケーション(そしてサービス)を終了する必要があるので、次回エンドユーザーがランチャーやホームボタン最初のアクティビティに戻ります。要するにアンドロイド - サービスまたは通知からアプリに戻る

、要件は次のとおりです。

  • サービス通知をクリック - >現在の活動を再開し、新しい活動の無い創造。
  • 特定のアクティビティに戻る - >すべてのアプリを閉じる(すべてのアプリのスタックをクリアする)

ので、私は(特別な活動である)活性B呼び出すアクティビティがある場合、たとえば、: をエンドユーザーが自宅クリックした場合、その後、通知を経由してアプリに戻った(または経由で開始しましたランチャー/ホームボタンを長押し)、アクティビティBの状態に戻ります。 また、エンドユーザーがアクティビティBで戻るボタンを押した場合、次回彼がアプリを開いたときに(方法に関係なく)、アプリケーションは閉じられ(サービスと通知はなくなります)、アクティビティAに戻ります。

アクティビティBで「singleInstance」を使用しようとしましたが、アクティビティBに戻ってきます。なぜなら、FLAG_ACTIVITY_REORDER_TO_FRONTや他のいくつかのフラグを試していても、フラグ)。 を使用しない場合、通知によってアクティビティBの新しいインスタンスが開きます。

誰でもお手伝いできますか?

答えて

0

ok私の場合は、答えが正確ではありませんが、アクティビティBに「singleTop」を使用し、アクティビティBに移動するときにアクティビティAを閉じることを選択しました。

1

別の方法として、偽の新しいアクティビティを開始するように通知の意図を設定し、作成されるとすぐに終了します。 インテントには "FLAG_ACTIVITY_NEW_TASK"フラグもあります。

うまくいけば、この方法は誰にとってもうまくいくでしょう。 このソリューションは実際のソリューションよりも回避策のようです。 Change notification intent in Android

1

ゼリービーン(アンドロイド4.1)は、今まさにこの問題のための新しいAPIが導入されています:

http://www.youtube.com/watch?feature=player_embedded&v=Yc8YrVc47TI#t=830s

しかし、私はわからないんだけど、私は

別の代替は、このリンクになりますどのように使用するのか、どのように動作するのかを理解する。アクティビティ全体のスタックを再作成する可能性はありますか?これまでになかったデータが含まれている可能性があります(リフレッシュされているため)。

これは、後で復元するためにすべての操作を監視する必要があるため、問題があると思われます。

+1

彼らはまた、ナビゲーションのビデオを作りました。そして、彼らは通知が既存の仕事に戻ることを望まないようです。代わりに、前のタスクを置き換える新しいタスクを開始することを希望します。私はそれが間違っていて、直感的ではないと思う。リンクは次のとおりです:https://developers.google.com/events/io/sessions/gooio2012/114/他の誰かが私の質問に対する答えを考えているなら、それを書き留めてください。 –

関連する問題