Android панель уведомлений открыть последнюю активную активность? - PullRequest
5 голосов
/ 03 ноября 2010

Я создаю приложение, похожее на таймер, и когда я запускаю таймер, у меня есть возможность перейти на Android Home или запустить любое другое занятие.

Когда я запускаю таймер, я устанавливаю значок панели уведомлений, и если я использую другиеприложения (имеется в виду переход от запущенной активности таймера), и теперь мне нужно вернуться к своей ранее запущенной активности таймера, щелкнув значок уведомления ???

Когда я нажимаю, я запускаю новую активность таймера экземпляра, а неранее запущенная активность таймера!, и если я затем нажму кнопку «Назад», это покажет мне ранее активацию по таймеру.

Вопрос: Как вызвать ранее запущенную активность через панель уведомлений, чтобы не запускать новый экземпляр этой активности ??

Это образец моего кода ниже:

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 голосов
/ 04 ноября 2010

Я нашел ответ, это про флаги: Android: новый Intent () запускает новый экземпляр с android: launchMode = "singleTop"

Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
2 голосов
/ 03 ноября 2010

Я не уверен, что понимаю, что вы имеете в виду.

Полагаю, вы могли бы добавить дополнительный текст в намерение, чтобы указать, какое именно уведомление использовалось для вызова вашего приложения.Помогает ли это вообще?

...