2015-06-14 3 views
0

Я работаю над приложением для обмена сообщениями, он отправляет уведомление пользователя, когда он находится на другом activty в моем приложении, или находится в другом приложении, но если пользователь находится на MessagingActivity.java, он просто обновляет историю чата и не выполняет отправляйте любые уведомления, которые являются прекрасными, но проблема возникает, когда пользователь находится на MessagingActivity.java, тем временем электронное письмо или что-то еще происходит. Пользователь оставляет MessagingActivity.java открытым и проверяет это приложение, если в то же время приходит сообщение. Пользователь не получает никаких уведомлений.Уведомления не отображаются

public void parseRequest(Bundle extras) { 
    if (extras.containsKey("for") && extras.containsKey("recipientID")) { 
     if (Integer.parseInt(extras.getString("recipientID")) == M.getID(this)) { 
      switch (extras.getString("for")) { 
       case "chat": 
        if (isRunning("MessagingActivity")) { 
         Intent intent = new Intent("update_messages_list"); 
         intent.putExtra("data", extras); 
         sendBroadcast(intent); 
        } else { 
         Intent resultIntent = new Intent(this, MessagingActivity.class); 
         resultIntent.putExtra("conversationID", Integer.parseInt(extras.getString("conversationID"))); 
         resultIntent.putExtra("recipientID", Integer.parseInt(extras.getString("ownerID"))); 
         M.showNotification(getApplicationContext(), resultIntent, 
           extras.getString("ownerUsername"), 
           extras.getString("message"), 
           Integer.parseInt(extras.getString("conversationID"))); 
        } 

ответ

1

Дайте мне знать, как вы проверяете, работает ли ваша MessageActivity, т.е. работает isRunning ("Me ssagingActivity ") способ. Если вы устанавливаете любую глобальную логическую переменную для проверки этого и делаете isRunning значение false в методе onDestroy() этого действия, тогда, согласно жизненному циклу Activity, он не вызывается до тех пор, пока ваша активность не будет завершена, т.е. в вашем случае пользователь просто переключится с MessageActivity послать письмо .

0

Я отнюдь не специалист, но вы можете просто задать логическую переменную, переопределив события Activity on() и onResume().

Просто установите msgActivityActive истина в onResume(), ложные в OnPause(), и изменить свой призыв:

if (isRunning("MessagingActivity") && msgActivityActive)