Потерян в полях PendingIntent - PullRequest
0 голосов
/ 18 июня 2011

Я немного потерян с PendingIntent.

Насколько я понимаю, это токен, который ОС предоставляет для выполнения более поздних (а значит, ожидающих) операций.

У меня есть активность, которая запустила сервис. Сервис порой создает уведомления. То, что я пытаюсь сделать, как самое простое, - вывести деятельность на передний план.

Я не уверен, где и как я создаю и кому отправляю PendingActivity.

  • Если я создаю его в Деятельности, мне нужно отправить его в службу - КАК?
  • Если я создам его внутри службы, каким будет контекст для вызова операции? это одно и то же? - Я думаю, это то же самое, что и ОС, но у меня она не сработала.

Вот несколько строк кода

Это не работает, кстати, StartService получает намерение. Этот код в моей деятельности

        Intent intent = new Intent(this, NeglectedService.class);

    // The PendingIntent to launch our activity if the user selects this notification
    PendingIntent contentIntent = PendingIntent.getActivity(this, 
            0,
            intent, 
            PendingIntent.FLAG_ONE_SHOT);

    startService(contentIntent);

Итак, правильный

Intent intent = new Intent(this, NeglectedService.class);
startService(contentIntent);

Так что я думаю сделать намерение в своем сервисе ожидающим, но это не сработало для меня, так как я не уверен, как повторно использовать / использовать намерение

Notification notification = new Notification(R.drawable.icon, 
            extra, 
            System.currentTimeMillis());

    PendingIntent contentIntent = PendingIntent.getActivity(this, 
            0,
            intent, // not sure what intent to use here !!!!
            PendingIntent.FLAG_ONE_SHOT);

    notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.defaults |= Notification.DEFAULT_LIGHTS;
    notification.defaults |= Notification.FLAG_INSISTENT;

    mNotificationManager.notify(id, notification);

1 Ответ

1 голос
/ 28 июня 2011

решена Что нужно сделать, это использовать Neglected.class в намерении.

...