2012-02-23 5 views
2

私のアンドロイドアプリケーションでは、アプリケーションを2回目に起動するようにフィードバックダイアログを出したいと思っています。 どうすればいいですか? 私はそれを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; 
} 

幸運を!