Android通知栏如何打开上一个活动?

5
我正在创建一个计时器应用程序,当我启动计时器时,我可以选择返回到Android主页或启动任何其他活动。
当我开始计时器时,我设置了一个通知栏图标。如果我使用其他应用程序(即从已启动的计时器活动中退出),现在我需要通过点击通知图标返回到先前启动的计时器活动吗?
当我点击时,我会启动一个新的计时器活动实例,而不是之前启动的计时器活动!如果我然后点击返回按钮,它会显示我之前的计时器活动。
问题是:如何通过通知栏调用先前启动的活动,而不是启动该活动的新实例?
以下是我的代码示例:
private void notificationBar()
{
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
    int icon = R.drawable.ico;
    CharSequence tickerText = "some title...";
    long when = System.currentTimeMillis();

    Notification notification = new Notification(icon, tickerText, when);
    Context context = getApplicationContext();
    CharSequence contentTitle = "some app title";
    CharSequence contentText = "...some info !";
    Intent notificationIntent = new Intent(this, main.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,  PendingIntent.FLAG_UPDATE_CURRENT | Notification.FLAG_AUTO_CANCEL);

    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);


    mNotificationManager.notify(NOTIF_ID, notification);

}    
private void notificationClose(int notifID)
{
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
    mNotificationManager.cancel(notifID);

}
2个回答

14

2

我不确定我理解你的意思。

我想你可以在意图中添加额外的内容,以指定是哪个通知精确地调用了你的应用程序。这对你有帮助吗?


1
你好,Manuel。我有这段代码,它的功能基本正常。唯一的问题是当我点击通知栏时,它不能打开/显示之前已经启动的活动,而是打开了新的活动实例。现在清楚了吗?我设置了一个活动计时器,开始计时后我创建了一个通知图标,并且使用了其他应用程序,在一段时间后我单击通知栏并需要打开计时器活动以继续计时,而不是打开全新的活动实例 :) - Nezir
2
在这种情况下,请查看activity的launchMode属性:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode 我认为你想使用singleTop。这有帮助吗? - Emmanuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接