2012-02-23 61 views
2

在我的Android應用程序中,我想創建一個反饋對話框,該對話框將顯示應用程序第二次啓動。 我該怎麼做? 我可以通過PreferenceActivity中的變量來做到這一點。如果偏好活動中的變量是由feks ++編輯的;這是下次應用程序啓動時變量的結果嗎?PreferenceActivity中的變量

編輯: 我沒有得到任何建議答案的工作,我可以對分機或內部存儲創建一個文本文件中的第一次應用程序被啓動,並檢查文件是否存在?

回答

0

使用SharedPreferences:

public class MainActivity extends Activity { 
    private SharedPreferences mSharedPrefs; 
    private static final String PREF_LAUNCH_COUNTER = "launch_counter"; 
    private int mLaunchCount = 0; 
    @Override 
    public void onCreate(Bundle savedState) { 
    mSharedPrefs = getPreferences(Context.MODE_PRIVATE); 
    if (savedState != null) { 
     mLaunchCount = savedState.getInt(PREF_LAUNCH_COUNTER, 1); 
    } else { 
     mLaunchCount = mSharedPrefs.getInt(PREF_LAUNCH_COUNTER, 1); 
     if(mLaunchCount > 1) { 
     //code to handle when the app was launched after the first time. 
     } else { 
     //code for when the app was launched for the first time.. 
     } 
     mSharedPrefs.edit().putInt(PREF_LAUNCH_COUNTER, mLaunchCount++); 

    } 

    } 
    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
    outState.putInt(PREF_LAUNCH_COUNTER, mLaunchCount); 
    } 

} 
0

不,變量不會持續通過活動重新啓動,因爲整個對象都是垃圾回收和重新創建的。

您可以使用SharedPreferences來存儲在應用程序啓動之間必須保持的數據。

0

這是一個野蠻人的解決方案,但它沒有Eclipse或Android手機靠近我。 你可以這樣做,我認爲:

protected boolean isSecondLaunchTime() { 
    SharedPreferences settings = getPreferences(MODE_PRIVATE); 
    int time = settings.getInt("launchTimes", 1); 

    if(time==1 || time>2) return false; 

    settings.edit().putString("launchTimes", ++time); 
    settings.edit().commit(); 

    if(time==2) return true; 
    else return false; 
} 

祝你好運!