不推荐使用addPreferencesFromResource

我在我的应用程序上创build了首选项活动,以允许用户启动/停止后台启动屏幕音乐,如下所示:

public class Prefs extends PreferenceActivity{ @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); // TODO Auto-generated method stub super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefs); } } 

并在xml文件夹中创buildprefs.xml:

  <?xml version="1.0" encoding="utf-8" ?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:title="splash music" android:defaultValue="true" android:key="checkbox" android:summary="Plese remove music "/> </PreferenceScreen> 

和这个飞溅活动的代码:

  public class Splash extends Activity{ MediaPlayer ourSong; @Override protected void onCreate(Bundle Drandroid) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); // TODO Auto-generated method stub super.onCreate(Drandroid); setContentView(R.layout.splash); ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound); SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); boolean music = getPrefs.getBoolean("checkbox", true); if (music == true) ourSong.start(); Thread timer = new Thread(){ public void run(){ try{ sleep(5000); } catch (InterruptedException e){ e.printStackTrace(); } finally{ Intent openTurkeyTrip = new Intent("com.android.dr.MENU"); startActivity(openplanet); }} }; timer.start(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); ourSong.release(); finish(); } } 

我如何解决与其他类不被弃用也我的应用程序将支持如下新旧设备:

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> 

任何意见将不胜感激,谢谢。

  • 如何将多个JSONObjects放入/获取到JSONArray?
  • 如何保护Android共享首选项?
  • 我可以从服务中的共享首选项获取数据吗?
  • 使用不同上下文的SharedPreferences
  • Android:在共享首选项中存储身份validation令牌是一个好主意吗?
  • 在SharedPreferences中存储一个String数组
  • 奇怪的例外:使用getBoolean时不能强制转换为布尔值
  • Android:如何在input时从TimePicker获取时间
  • PreferenceActivity不被弃用。

    addPreferencesFromResource()上的addPreferencesFromResource()弃用。 但是,如果您支持的API级别为10或更低,则别无select,只能在这些设备上使用它。

    不推荐使用的方法是将PreferenceFragmentPreferenceActivity结合使用,如PrefereceActivity文档中所述 。 如果您的应用只支持API Level 11及更高版本,请使用它。 如果您的应用支持较旧的设备,则可以:

    • 一直使用addPreferencesFromResource() ,因为它仍然有效,直到你放弃对旧版本的支持

    • 仅在旧设备上使用addPreferencesFromResource() (通过检查Build.VERSION.SDK_INT ),并依赖新设备上基于片段的新系统