当我的 PreferenceActivity(SettingActivity) 中的用户 select 选项时,如何隐藏通知
How can I hide notification, when user select option from my PreferenceActivity(SettingActivity)
我正在为我的 SettingActivity 使用首选项概念,并且我有一个用于通知的 SwitchPreference 切换按钮 on/off,但是当用户切换到关闭通知时,可以编写关闭通知的代码。
我猜你也可以通过获取 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;
}
}
}
您无法在 android 中以编程方式打开或关闭通知设置。相反,如果您使用的是 Firebase 云消息传递 (FCM),则可以在 "FirebaseMessagingService()" class 中编写逻辑以不生成任何通知。但这仅在您的应用处于前台状态时才有效。如果您的应用处于后台状态或未处于后台状态 运行,则 Firebase 发送的通知将显示在通知栏中。
有关在 android 中使用 FCM 接收通知的更多信息,请参阅此 link。
我正在为我的 SettingActivity 使用首选项概念,并且我有一个用于通知的 SwitchPreference 切换按钮 on/off,但是当用户切换到关闭通知时,可以编写关闭通知的代码。
我猜你也可以通过获取 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;
}
}
}
您无法在 android 中以编程方式打开或关闭通知设置。相反,如果您使用的是 Firebase 云消息传递 (FCM),则可以在 "FirebaseMessagingService()" class 中编写逻辑以不生成任何通知。但这仅在您的应用处于前台状态时才有效。如果您的应用处于后台状态或未处于后台状态 运行,则 Firebase 发送的通知将显示在通知栏中。
有关在 android 中使用 FCM 接收通知的更多信息,请参阅此 link。