0

通知バーをクリックすると、MainActivity.classインターフェイスがスキップされます。

Intent notificationIntent = new Intent(context,MainActivity.class); //After click the notification, it will skip to the activity 
PendingIntent contentIntent = PendingIntent.getActivity(context,0,notificationIntent,0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

それ自体がすでに開いている場合MainActivity.classは、通知バーをもう一度クリックすると、2つのインターフェイスが表示されます。これを解決する方法を誰が知っていますか?

4

1 に答える 1

1

行を変更します。

Intent notificationIntent = new Intent(context,MainActivity.class);

に:

Intent notificationIntent = 
    new Intent(context,MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

Androidのドキュメントからのように、次のように書かれています:

FLAG_ACTIVITY_SINGLE_TOP
設定されている場合、履歴スタックの最上位で既に実行されているアクティビティは起動されません。

または、これが意図した動作でない場合は、次のフラグを確認してください。

FLAG_ACTIVITY_CLEAR_TOP
設定されていて、起動されているアクティビティが現在のタスクで既に実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のすべてのアクティビティが閉じられ、このインテントがに配信されます (今上)新しいインテントとしての古いアクティビティ。

これらのフラグが何を引き起こすかを理解しようとするとき、次の文書はあなたにとって興味深いかもしれません:

于 2013-02-21T10:11:50.213 に答える