Je crée une activité Préférence sur mon application pour permettre à l'utilisateur de démarrer/arrêter la musique de fond d'écran de démarrage comme suit:
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);
}
}
et à l'intérieur du dossier xml, créez 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>
et ce code pour l'activité splash:
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();
}
}
comment puis-je le résoudre avec une autre classe qui n'est pas obsolète, mon application prendra également en charge les appareils anciens et nouveaux comme ci-dessous:
<uses-sdk
Android:minSdkVersion="8"
Android:targetSdkVersion="17" />
tout conseil sera apprécié, merci.
PreferenceActivity
n'est pas obsolète.
addPreferencesFromResource()
sur PreferenceActivity
est déconseillé. Cependant, si vous prenez en charge l'API de niveau 10 ou inférieur, vous n'avez pas d'autre choix que de l'utiliser, au moins sur ces appareils.
L'approche non déconseillée consiste à utiliser PreferenceFragment
en conjonction avec PreferenceActivity
, comme décrit dans la documentation PrefereceActivity
. Si votre application ne prend en charge que l'API de niveau 11 et supérieur, utilisez-la. Si votre application prend en charge des appareils plus anciens, soit:
Utilisez addPreferencesFromResource()
tout le temps, car cela fonctionne toujours, jusqu'à ce que vous supprimiez la prise en charge des anciennes versions, ou
Utilisez addPreferencesFromResource()
uniquement sur les appareils plus anciens (en cochant Build.VERSION.SDK_INT
), et s'appuyer sur le nouveau système basé sur des fragments sur des appareils plus récents