私のアプリでは、 onCreate() メソッドを使用してさまざまな変数を初期化しています。ただし、デバイスを回転させて画面が自動回転するたびに、 onCreate() が再度呼び出され、変数が再初期化されます。それはどのように機能するはずですか?アプリの起動時に一度だけ実行したいコードはどこに置くべきですか?
質問する
92 次
2 に答える
1
上記の回答により、Activity が特定の向きにロックされますが、これは通常、Android アプリの適切な動作ではありません。
あなたがしなければならないことは、アクティビティの状態を保存することです。これにより、アクティビティが再作成されたときに、保存された値で UI を再設定できます。
protected void onSaveInstanceState (Bundle outState) {
super.onSaveInstanceState(outState);
// put your values in the Bundle
outState.putString("TextView1Text", textView1.getText()); // for example;
}
次に、onCreate()
メソッドで値を復元できます
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
textView.setText(savedInstanceState.getString("TextView1Text"));
}
}
これは、ユーザーがホーム ボタンまたはその他の手段でアプリを離れたときにも機能します。
于 2013-04-06T19:07:57.763 に答える