1

我正在为我的 SettingActivity 使用 Preferences 概念,并且我有一个 SwitchPreference 切换按钮用于通知开/关,但是当用户切换到关闭通知时,可以编写关闭通知的代码。

4

2 回答 2

1

我想您也可以通过获取getDefaultSharedPreferences来做到这一点,您的首选项存储在您的用户设置中,如果您使用的是FCM,那么您可以这样做。

 public class MyFirebaseMessagingService extends FirebaseMessagingService {
    private static final String TAG = "MyFirebaseMsgService";
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
     //here decide by getting the value of your preference manager
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

     if (preferences.getBoolean("your_switch", true)){
          // Your switch is on
          displayNotification();
     } else {
          // Your switch is off
          return;
     }

  }

 }
于 2018-01-12T06:55:06.197 回答
0

您不能在 android 中以编程方式打开或关闭通知设置。相反,如果您使用 Firebase Cloud Messaging (FCM),您可以在“FirebaseMessagingService()”类中编写逻辑以不生成任何通知。但这仅在您的应用程序处于前台状态时才有效。如果您的应用处于后台状态或未运行,则 Firebase 发送的通知将显示在通知托盘中。

有关在 android 中使用 FCM 接收通知的更多信息,请参阅此链接

于 2018-01-12T08:38:37.090 回答