1

アプリが起動されるたびではなく、アプリのライフサイクルで一度だけメソッドを呼び出すには、そのようなメソッドをどこに配置する必要がありますか?

onCreate()どこか他の場所で?

4

3 に答える 3

6

ブール変数でApplication.onCreate()保護する必要があります。SharedPreference

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs.getBoolean("firstRun", true)) {            
    once(); // <-- your function
    prefs.edit().putBoolean("firstRun", false).commit();
}
于 2011-09-01T15:29:39.750 に答える
2

これを追加してonCreate()、以前に初期化/呼び出されていない場合にのみメソッドを呼び出すことができます。

protected void onCreate(Bundle b) {
    if(shouldCall()) { // I know if the method has been called before
        callMethodJustOnce();
    }
}

このメソッドを1回だけ呼び出す場合は、ここでの使用を推奨するほとんどの回答を確認しますPreferences。ただし、アプリが起動するたびに1回話している場合は、でこれを実現する必要がありますonCreate()。これは、アプリが初期化されて起動されたときにのみ呼び出されるためです。

于 2011-09-01T15:30:32.127 に答える
0

アプリのオープン時間をカウントする共有設定の変数を作成し、0の場合はメソッドHappycoding:Dを呼び出します

于 2011-09-01T15:31:09.437 に答える