2013-07-12 4 views
1

У меня есть приложение в android, и в некоторых случаях я хочу перенести деятельность на передний план. Для этого я использую NotificationManager. Вот мой код. Проблема заключается в том, что деятельность впервые проводится на фронте, но тогда этого не происходит. Кроме того, этот код запускается из службы.setFullScreenIntent не работает во второй раз

Intent notificationIntent = new Intent(context, MainActivity.class); 
      PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 

      NotificationCompat.Builder mBuilder = 
         new NotificationCompat.Builder(this) 
         .setSmallIcon(R.drawable.ic_launcher) 
         .setContentIntent(contentIntent) 
         .setContentTitle("Bring me front!") 
         .setContentText("Bring me!!! BRING!!!") 
         .setFullScreenIntent(contentIntent, true); 

      NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
      mNotificationManager.notify(0, mBuilder.build()); 

ответ

2

Несколько вещей, чтобы проверить:

  1. Ваше намерение будет, вероятно, потребуется FLAG_ACTIVITY_NEW_TASK (и, возможно, FLAG_ACTIVITY_CLEAR_TOP), чтобы гарантировать, что деятельность на передний план.
  2. Убедитесь, что вы не пытаетесь повторно использовать один и тот же PendingIntent более одного раза; каждый раз, когда вы публикуете это уведомление, вам нужно будет создать новый PendingIntent для использования с fullScreenIntent.
+0

Спасибо, я уже решил эту проблему и флагов, которые вы упомянули, где используется в решении: Intent intent = new Intent ("android.intent.category.LAUNCHER"); \t \t \t \t intent.setClassName ("co.simplytech.bulova_time", "co.simplytech.bulova_time.MainActivity"); \t \t \t \t intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); \t \t \t \t startActivity (намерение); –

0

NotificationManager имеет (недокументированные) поведение, которое будет игнорировать в fullScreenIntent поле, если вы разместите новое уведомление, которое соответствует идентификатор одного, который уже активен.

Смежные вопросы