-2

私は3つのアクティビティABCを持っています.私がアクティビティBにいて、そこのリストビューから、アクティビティCを起動する意図を持つ通知が来た場合、アクティビティCを起動するとしましょう。問題は、アクティビティCの複数のインスタンスを取得していることです. launchMode singleTop または instance または task を使用すると、複数のアクティビティ インスタンスの問題は解決されますが、新しく起動されたアクティビティは適切に機能しません。

フラグなどの使用にうんざりしているのに、この問題を克服できない私を助けてください。

シナリオは whatsapp と同じです。1 人と話しているときに 2 人のメッセージが通知として表示され、その通知をクリックすると、アクティビティが再起動して適切に機能します。これはまさに私が欲しいものです。これを達成する方法を教えてください。:(

事前にサンクス

4

1 に答える 1

0

試したフラグと正確に機能していないものは何ですか?つまり、アクティビティはどのように動作しますか?

あなたがWhatsAppで説明したことは、次の2つのステップで達成できます。

  • アクティビティには FLAG_ACTIVITY_SINGLE_TOP を使用します。

  • Overwrite the Actvity.onNewIntent(Intent intent) method in the Activity. This method is called instead of creating a new Activity and gives you the new Intent. I assume that the Intent contains all necessary information in the extras.

The user experience should be as follows:

  • User chooses from the list, which opens the new Activity
  • He/she can press home or back button from here. This brings the home screen or the list back.
  • If, for any reason, somebody else calls startActivity for your Activity while it is running, the onNewIntent is called. There you can add code to refresh the content, maybe have an Alert that tells the user that the content has changed, and shows all that to the user.
  • If the user presses back or home now, he/she will get to the list or home screen

それがあなたが探しているものであれば、フラグとメソッドが必要です

于 2013-10-29T18:17:42.760 に答える