重複の可能性:
向きを変更しているときにフラッシュライトがオフになっている
私はAndroidアプリを構築しています。構成を変更すると、フラッシュライトが消えます。次に、もう一度[オン]ボタンをクリックしてオンにする必要があります。アプリでスイッチをオンのままにするにはどうすればよいですか?
重複の可能性:
向きを変更しているときにフラッシュライトがオフになっている
私はAndroidアプリを構築しています。構成を変更すると、フラッシュライトが消えます。次に、もう一度[オン]ボタンをクリックしてオンにする必要があります。アプリでスイッチをオンのままにするにはどうすればよいですか?
android:configChanges="keyboardHidden|orientation"
Androidマニフェストファイルでアクティビティに追加します。
向きを変えると、アクティビティ全体が破棄され、新しいアクティビティが作成されます。つまり、アクティビティがフラッシュの現在の状態を失い、オフになります。
マニフェストで向きの変更を無効にしてみてください。そして、オンストップでflshの現在の状態を保存し、オンスタートで状態をリセットします。
これは私が信じるあなたのために働くでしょう。
基本的な問題は、構成を変更するとデフォルトでアクティビティが再作成されるため、アクティビティで再帰管理を行う場合は、それを覚えておく必要があります。
2つの反対の解決策があります:
android:configChanges
たとえば、手動で処理する構成変更のアクティビティリストのマニフェストプロパティを追加して、構成変更時のアクティビティの再作成を無効にします"keyboardHidden|orientation|screenSize"
(screenSize
Adnroid 3.1以降で必要です)。この場合、メソッドonConfigurationChangedをオーバーライドすることで、構成の変更を処理できます。
メソッドonSaveInstanceStateをオーバーライドし、バンドル内にアクティビティの状態を保存することにより、アクティビティの再作成を処理します。次に、onCreate
パラメータsavedInstanceState
が設定されている場合(nullではない)、そのバンドルから状態を復元する必要があります(懐中電灯の状態を復元します)。
方法の選択は、アクティビティの設計によって異なります。