2012-03-22 23 views
2

初めてアプリケーションを起動するときにアプリケーションがデータを読み込む必要がありますが、再開するときに再度ロードしないでください。onCreateメソッドをロードすると、私はこれを望んでいない、私は一度だけロードを実行する必要があります、それを修正する方法はありますか?onCreate and Initialization in Android

+0

です。アクティビティのonconfigurationchangeメソッドをオーバーライドする必要があります –

+0

@HarshDevChandel - あなたは詳しく説明できますか?私はちょっと混乱しています。なぜなら、「一度しか起こらないことを欲しい」という答えが、「オリエンテーションの変更を無視したり再開しないように設定している」という回答が多すぎると思われる理由です。デバイスの向きを変更することとは何の関係もないデータが2度目に読み込まれる場合があります。 – aroth

+0

オリエンテーションが変更されたときにoncreate関数が再度呼び出されます。これは、onconfigchangeメソッドを上回らないようにする場合に呼び出されます。ここで確認できる何かを実行するには、モードがランドスケープかpotriatかを指定します。 –

答えて

0

これは本当に簡単です!ちょうど置く:あなたは、このような機能を必要とするアクティビティタグ内のAndroidManifest.xmlファイル内

android:configChanges="keyboardHidden|orientation"

を。

例:

<activity 
    android:name=".MyActivity" 
    android:configChanges="keyboardHidden|orientation" 
    android:label="Test" 
    android:windowSoftInputMode="stateHidden" > 
</activity> 
2

データをロードするときにフラグを設定するだけで、フラグが設定されていない場合はデータをロードするだけです。例えば:

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 

if (! preferences.getBoolean("dataLoaded")) { 
    loadData(); 

    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putBoolean("dataLoaded", true); 
    editor.commit(); 
} 

これは、データがのみをインストールするごとに一度ロードされていることを確認します。アプリケーションごとに一度データをロードする場合は、インスタンス/実行を実行すると、ソリューションはさらに簡単になります。その場合、SharedPreferencesの代わりにpublic staticフラグをどこかに持つことができます。

0

構成変更が実行時に発生した場合、活動が再開されてからの活動を防ぐことができますシャットダウンし、デフォルトでは再起動が、この属性(android:configChanges)とのコンフィギュレーションを宣言しています。あなたの場合、このプロパティの値は android:configChanges="orientation"