0

CheckBox が 1 つだけの非常に単純なアプリケーションがあります。Androidが私のアクティビティを破棄すると、このチェックボックスの状態がリストになると思いました。実際に起こることは、チェックボックスがチェックされたままになることです。

onDestroy() は実際に呼び出されます (ローテーション時または別のアプリに切り替えたとき -> エミュレーターにはこの開発構成があります)。

では、onRestoreInstanceState() と onSaveInstanceState() を使用せずにこれが機能するのはなぜでしょうか?

Android のターゲットは 4.2 Jelly Bean です。

ここで私の活動:

public class CoffeeMixerActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_coffee_mixer);
}

protected void onDestroy() {
    super.onDestroy();

    Log.d("MyMessage", "Destroy my app");
}
}

ここに私のレイアウトファイル:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CoffeeMixerActivity" >

<CheckBox
    android:id="@+id/checkBoxSprinkles"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Sprinkles" />

</RelativeLayout>
4

1 に答える 1

1

わかりました..自分で解決策を見つけました: Android CheckBox - 画面回転後の状態の復元

説明: すべてのビューには true の android:saveEnabled フラグがあります。これは、ビューに ID がある場合、ビューがフリーズされたときに状態が自動的に保存されることを意味します...

ここに属性のドキュメントがあります: http://developer.android.com/reference/android/R.attr.html#saveEnabled

于 2013-09-05T07:07:19.433 に答える