2015-07-02 3 views
2

У меня есть приложение, которое имеет MainActivity (Mr.Ovvious), службу и BroadcastReceiver. В моей MainActivity у меня есть AlarmManager вроде этого:Необходимо знать, когда мое приложение отправит уведомление

Intent myIntent = new Intent(MainActivity.this, BroadReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0); 

    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      calendar.getTimeInMillis(), 
      AlarmManager.INTERVAL_HALF_DAY, pendingIntent); 

В моем BroadcastReceiver у меня есть это:

public void onReceive(Context context, Intent intent) { 
    Intent service1 = new Intent(context, NotifyService.class); 
    context.startService(service1); 
} 

И в моей службе, у меня есть это:

public int onStartCommand(Intent intent, int flags, int startId) { 


    NotificationManager notificationManager = (NotificationManager) this.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
    Intent intent1 = new Intent(this.getApplicationContext(),MainActivity.class); 
    Notification notification = new NotificationCompat.Builder(this) 
      .setTicker(getText(R.string.notification_ticker)) 
      .setSmallIcon(R.drawable.green) 
      .setContentTitle(frase()) 
      .setContentText(getText(R.string.notification_text)) 
      .setAutoCancel(true) 
      .build(); 
    intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    notificationManager.notify(0, notification);} 

Я хочу, чтобы мои приложение, чтобы включить кнопку в MainActivity, когда пользователь получает уведомление, возможно?

+1

вы можете включить его от себя вещательный приемник правильно? –

+0

Создайте объект в эфире, как на Main? –

+0

Как насчет состояния вашего приложения в этом сценарии? фона или переднего плана или вам нужно работать в обоих состояниях? –

ответ

0
  • Если в начало деятельности фон вновь
Intent in = new Intent(this, MainActivity.class); 
in.putExtra("state", "background"); 
startActivity(in); 
  • Получить строку дополнительные затем сравнить его и контролировать кнопку

  • Если на переднем плане сделать кнопку o ▪ Таблица, как общественный то контролировать его

  • использовать глобальную переменную для идентификации MainActivity на переднем плане или нет (Использование активности жизненного цикла)

onDistroy() 


    onStart() 
+0

Но если я это сделаю, когда служба отправит уведомление, MainActivity откроется? –

+0

, когда состояние остается в фокусе, очевидно ... –

+0

Но если я это сделаю, он будет анонимным, потому что он все время откроет MainActivity. –

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