2012-01-08 11 views

risposta

15

È possibile verificare se un flag speciale (chiamiamolo firstRun) è impostato nell'applicazione SharedPreferences. Altrimenti, è la prima esecuzione, quindi mostra la tua attività/popup/qualsiasi cosa con le istruzioni e poi imposta il firstRun nella preferenza.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    SharedPreferences settings = getSharedPreferences("prefs", 0); 
    boolean firstRun = settings.getBoolean("firstRun", true); 
    if (firstRun) 
    { 
     // here run your first-time instructions, for example : 
     startActivityForResult(
      new Intent(context, InstructionsActivity.class), 
      INSTRUCTIONS_CODE); 

    } 
} 



// when your InstructionsActivity ends, do not forget to set the firstRun boolean 
protected void onActivityResult(int requestCode, int resultCode, 
     Intent data) { 
    if (requestCode == INSTRUCTIONS_CODE) { 
     SharedPreferences settings = getSharedPreferences("prefs", 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("firstRun", false); 
     editor.commit(); 
    } 
} 
+2

Dovrebbe essere: 'editor.putBoolean ("FirstRun", false) ; 'invece di' editor.putBoolean ("firstRun", true); ' – 70sCommander

1

sì, si può risolvere questo problema con SharedPreferences

SharedPreferences pref; 
SharedPreferences.Editor editor; 

pref = getSharedPreferences("firstrun", MODE_PRIVATE); 
editor = pref.edit(); 

editor.putString("chkRegi","true"); 
editor.commit(); 

Poi controlla String chkRegi tura o falso