当应用程序处于前台时,检查 MyFirebaseMessagingService 中的 Activity 信息

Check Activity info in the MyFirebaseMessagingService when App is in foreground

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

的内容

您可以使用 SharedPreferences 在 onResume、onPause 中保存您应用的当前 运行 activity。

如下所示:

 @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;
}