4

私の目標は、ユーザーが通知をクリックした場合に最後のアクティビティに戻ることです。この方法で、サービスonCreate()から通知を作成します。

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

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

しかし、通知をクリックすると、これはMainActivityに移動し、ホームボタンをクリックする前に最後に開いたものには移動しません。

マニフェストでは、launchMode = "singleTop"、 "standard"、および "singletask"を使用してMainActivityを試しましたが、成功しませんでした。

ありがとう。

4

2 に答える 2

6

アプリの起動時にAndroidが使用するのと同じインテントフィルターを使用するだけです。

    final Intent notificationIntent = new Intent(context, YourActivity.class);
    notificationIntent.setAction(Intent.ACTION_MAIN);
    notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

通知バーからアクティビティを開くために作成したインテントは、アプリの起動に使用されるAndroidと同じであるため、新しいアクティビティを作成する代わりに、以前に開いたアクティビティが表示されます。

于 2013-04-25T13:15:02.500 に答える
5

以下のコードを使用してください。

 contentTitle = "MyApp";
    contentText = "Reopen App";
notificationIntent = new Intent(this, MainActivity.class);
    contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);

また、AndroidマニフェストでアクティビティをSingleTopまたはSingleInstanceに設定し、新しいアクティビティを作成する代わりに、まだアクティブなアクティビティを再度開きます。

于 2012-05-14T11:51:11.330 に答える