我的代码是:

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static class NotificationPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref_notification);
        setHasOptionsMenu(true);
        bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone"));
        Preference notificationPref = findPreference("notifications_new_message");
        notificationPref.setOnPreferenceChangeListener((preference, newValue) -> {
            boolean isNotificationOn = (Boolean) newValue;
            if(preference.getKey().equals("notifications_new_message") && isNotificationOn){
                FirebaseMessaging.getInstance().subscribeToTopic("news");
            }else{
                FirebaseMessaging.getInstance().unsubscribeFromTopic("news");
            }
            return true;
        });

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            startActivity(new Intent(getActivity(), ActivityPref.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Android Studio报告不推荐使用NotificationPreferenceFragment的默认构造函数。如何修复弃用警告?

分析解答

使用AndroidX Preference Library。此library管理用户界面并与存储交互,以便您仅定义用户可以配置的各个设置。

public class MySettingsFragment extends PreferenceFragmentCompat {
 @Override
 public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    setPreferencesFromResource(R.xml.preferences, rootKey);
 }
} 

有关更多详细信息:请遵循此链接