我在我的应用上创建了首选项活动,以允许用户启动/停止背景启动画面音乐,如下所示:
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文件夹中创建prefs.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" />
任何建议都将不胜感激,谢谢。
答案 0 :(得分:38)
PreferenceActivity
未被弃用。
addPreferencesFromResource()
已弃用
未弃用的方法是将PreferenceActivity
与PreferenceFragment
结合使用,如the PrefereceActivity
documentation中所述。如果您的应用仅支持API级别11及更高级别,请使用该应用。如果您的应用支持较旧的设备,请执行以下操作:
始终使用PreferenceActivity
,因为它仍然有效,直到您放弃对旧版本的支持,或
仅在旧设备上使用addPreferencesFromResource()
(通过检查addPreferencesFromResource()
),并在新设备上依赖新的基于片段的系统