我正在开发一个消息传递应用,当他在我的应用上的另一个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")));
}
答案 0 :(得分:1)
让我知道您是如何检查您的MessageActivity正在运行,即 isRunning(“MessagingActivity”)方法的功能。如果你要设置任何全局布尔变量来检查这个并在该活动的onDestroy()方法中使isRunning值为false,那么根据Activity的生命周期,在你的活动完成之前不会调用它,即在你的情况下用户只是从MessageActivity切换邮寄。
答案 1 :(得分:0)
我绝不是专家,但你可以通过覆盖Activity的onPause()和onResume()事件来设置一个布尔变量。
只需在onResume()中将msgActivityActive设置为true,在onPause()中设置为false,并将调用更改为:
if (isRunning("MessagingActivity") && msgActivityActive)