不推荐使用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" /> 

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

Solutions Collecting From Web of "不推荐使用addPreferencesFromResource"

PreferenceActivity不被弃用。

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

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

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

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