0

作業中のアプリのフローに問題があります。基本的に、私は常に通知を保持するサービスを持っています。通知を押すと、アプリを再度開かずにアプリの最新のアクティビティに戻る必要があります(再開することを意味します)。また、特定のアクティビティ(およびおそらく他のアクティビティ)で、戻るボタンをクリックするとアプリ(およびサービス)が終了する必要があるため、次回エンドユーザーがランチャーまたはホームボタンを長押しして開始するとき、最初のアクティビティに戻ります。

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

  • サービス通知クリック -> 現在のアクティビティを再開、新しいアクティビティは作成されません。
  • 特定のアクティビティをもう一度クリックします -> アプリを完全に閉じます (すべてのアプリのスタックをクリアします)。

したがって、たとえば、アクティビティ B (特別なアクティビティ) を呼び出すアクティビティ A がある場合: エンドユーザーがホームをクリックし、通知を介してアプリに戻った場合 (または、ランチャー/ホームボタンを長押しして起動した場合) ) 、アクティビティ B の正確な状態に戻ります。また、エンド ユーザーがアクティビティ B で [戻る] ボタンを押した場合、アプリは閉じられます (サービスと通知は消えます)。

アクティビティ B で「singleInstance」を使用しようとしましたが、使用するフラグに関係なく、独自のタスク内にあるため、常にアクティビティ B に戻ります(FLAG_ACTIVITY_REORDER_TO_FRONT およびその他のフラグをいくつか試しました)。それを使用しないと、通知によってアクティビティ B の新しいインスタンスが開かれます。

誰でも助けてもらえますか?

4

3 に答える 3

1

別の方法は、作成されるとすぐに閉じる新しい偽のアクティビティを開始するように通知の意図を設定することです。インテントには「FLAG_ACTIVITY_NEW_TASK」フラグも含まれます。

うまくいけば、この方法は誰にとってもうまくいくでしょう。残念ながら、この解決策は実際の解決策というよりも回避策のように見えます。

別の代替手段は次のリンクです: Android で通知の意図を変更する

于 2012-05-14T11:52:05.037 に答える
1

ジェリー ビーン (Android 4.1) では、この正確な問題に対して新しい API が導入されました。

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

ただし、使い方と仕組みがよくわかりません。アクティビティのスタック全体を再作成することは可能ですか? 以前は存在しなかったデータが含まれている可能性があるため(更新されているため)、かなり問題ではありませんか?

また、後で復元するためにすべてのアクションを監視する必要があることを意味するため、問題があるようにも聞こえます。

于 2012-06-30T10:42:19.443 に答える
0

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

于 2012-04-11T13:57:03.780 に答える