Уведомление Android PendingIntent проблема - PullRequest
0 голосов
/ 18 марта 2011

У меня есть менеджер аварийных сигналов, который вызывает класс активности с именем ScheduleAlert.

public class ScheduleAlert extends ActivityGroup {

   private String notificationAlart, editEventid;

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                ...........
                ..........
                // ************* Notification ************//
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        final Notification notifyDetails = new Notification(R.drawable.icon, "Myapp", nextAlarmTime);

        Context context = getApplicationContext();
        CharSequence contentTitle = "Myapp";
        CharSequence contentText = notificationAlart;

        Intent notifyIntent = new Intent(context, MyApp.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(ScheduleAlert.this, 0, notifyIntent,android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP);
        notifyDetails.setLatestEventInfo(context, contentTitle, contentText,pendingIntent);

            notifyDetails.flags = Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_AUTO_CANCEL;
    notifyDetails.defaults |= Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE;
            mNotificationManager.notify((int) editEventid, notifyDetails);

        // ************* Notification ************//
        this.finish();
      }

      public void onDestroy(){
        super.onDestroy();

      }

}

Я хочу, чтобы отступ активности MyApp срабатывал, когда я нажимал на массаж уведомлений.На момент уведомления хочу только звук и вибрацию.Но теперь я получаю звук и вибрацию, а также активируется активность MyApp, чего я на самом деле не хочу.В чем проблема в моем коде?

1 Ответ

1 голос
/ 18 марта 2011

Есть много и много странных вещей с этим кодом:

  • Я не знаю, почему вы расширяете ActivityGroup для этого кода
  • Не используйте getApplicationContext()в большинстве случаев, таких как этот
  • Поскольку это ActivityGroup (по любой причине), а не Service, для ОС и пользователя вводить в заблуждение вводит FLAG_FOREGROUND_SERVICE
  • FLAG_FOREGROUND_SERVICE и FLAG_AUTO_CANCEL не имеют большого смысла в комбинации

Однако я не ожидаю, что все это приведет к автоматическому запуску MyApp.На самом деле, AFAIK, нет обстоятельств, при которых Notification будет автоматически вызывать свой PendingIntent без нажатия пользователем на него.Я подозреваю, что ваша настоящая проблема лежит в другом месте.

...