Android 当应用程序位于前台时,检查MyFirebaseMessagingService中的活动信息

Android 当应用程序位于前台时,检查MyFirebaseMessagingService中的活动信息,android,firebase,android-service,firebase-cloud-messaging,android-notifications,Android,Firebase,Android Service,Firebase Cloud Messaging,Android Notifications,我正在开发一个聊天应用程序。我正在直接从服务器检索聊天记录。我正在侦听新节点。因此,如果应用程序位于前台,并且通知来自与我交谈的同一用户。我不想显示通知。如何在服务中签入前台正在运行的活动以及该活动的内容。您可以使用SharedReferences在onResume、onPause中保存应用程序当前正在运行的活动 如下图所示: @Override public void onPause() { super.onPause(); PreferenceManager.getDefa

我正在开发一个聊天应用程序。我正在直接从服务器检索聊天记录。我正在侦听新节点。因此,如果应用程序位于前台,并且通知来自与我交谈的同一用户。我不想显示通知。如何在服务中签入前台正在运行的活动以及该活动的内容。

您可以使用SharedReferences在onResume、onPause中保存应用程序当前正在运行的活动

如下图所示:

 @Override
public void onPause() {
    super.onPause();
    PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("isCurrent", false).commit();
}

@Override
public void onDestroy() {
    super.onDestroy();
    PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("isCurrent", false).commit();
}

@Override
public void onResume() {
    super.onResume();
    PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("isCurrent", true).commit();
}
然后为您服务:

if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("isCurrent", false)) {
            return;
}

如果您感兴趣,我已经在我的一个教程中一步一步地讲解了如何使用Cloud Firestore和Node.js向特定用户发送信息。