Android:从通知中恢复上次活动

时间:2012-05-14 11:42:07

标签: android

如果用户点击通知,我的目标是返回上一个活动。 我以这种方式在服务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,但没有成功。

感谢的。

2 个答案:

答案 0 :(得分:6)

启动应用时,只需使用Android使用的相同意图过滤器:

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

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

答案 1 :(得分: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,然后重新打开仍然有效的活动,而不是创建新活动。