3

私は単一の答えを探しています(しかし、間違った質問をしているかもしれません)

質問 - アクティビティが破棄されるまで、TOTAL 回だけ呼び出されるイベントはありますか?

ユーザーが電話を横向きに回転させると、oncreate と onstart の両方が呼び出され、ある種のリロードが発生するためです。

1回しか実行されない行動を入れることができるイベントを探しています(アクティビティが強制終了されるまで)

前もって感謝します

4

4 に答える 4

11

If it is specific to the Activity just check your savedInstanceState parameter in the onCreate event. If it is null, run your code, if not, your code has already been run.

Example:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    if(savedInstanceState == null) {
        // Run your code
    }        
}

savedInstanceState will always be null when onCreate is run for the first time, and it will be populated thereafter.

于 2012-01-27T00:38:43.537 に答える
1

方向変更でのアクティビティの再現を排除したい場合は、マニフェストで configchanges をリッスンできます。

    <activity
            android:name=".MyActivity"
            android:configChanges="orientation" >
    </activity>

そして、次のように onConfigurationChanged をオーバーライドできます。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged( newConfig );

    LinearLayout main = (LinearLayout) findViewById( R.id.mainLayout );
    main.requestLayout();
}

アクティビティ全体を再作成せずに、新しい方向に一致するようにレイアウトを再作成します。

于 2012-01-27T00:48:18.283 に答える
1

何をしようとしているのかを実際に指定するわけではないので、これがあなたの使用に適しているとは保証できませんが、Application.onCreate一度しか呼び出されません。

于 2012-01-27T00:31:55.967 に答える
0

http://developer.android.com/guide/topics/resources/runtime-changes.htmlを確認して、構成の変更を処理し、それらの間で膨大なデータを維持します...構成の変更の間に維持する必要があるのが設定では、onSavedInstanceState() および onRestoreInstanceState() コールバックと指定されたバンドルを使用できます。

于 2012-01-27T00:46:31.813 に答える