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);

由于您创建的从通知栏打开 Activity 的意图与 android 用于启动您的应用程序的意图相同,因此将显示先前打开的 Activity 而不是创建新的。

于 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 Manifest 中将 Activity 设置为 SingleTop 或 SingleInstance,然后无需创建新的活动,而是重新打开仍处于活动状态的活动。

于 2012-05-14T11:51:11.330 回答