問題タブ [onsaveinstancestate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - FragmentTransactionをコミットする前に、状態が保存されているかどうかを確認する
ユーザーがアクティビティを表示していないときに発生する可能性のあるコミットについて、次のスタックトレースが表示されることがあります(状態が保存された後)。
Androidのソースを見ると、これは完全に理にかなっています。
さて、フラグメントが望ましくない状態でコミットされるかどうかをチェックする方法(on(Save / Restore)InstanceStateにクラス変数を格納する以外に)があるかどうか疑問に思います。このようにして、後でトランザクションを格納して作成できます。適切なタイミングでコミットします。
android - onRestoreInstanceState はいつ呼び出されますか?
理解できなくて申し訳ありませんが、私はアンドロイド開発の初心者です。
アクティビティ A とアクティビティ B を含むアプリケーションがあり、アクティビティ A からアクティビティ B に移動します。アクティビティ A を離れると、onSaveInstanceState
メソッドが呼び出されましたが、アクティビティ A に戻ると (同じアプリケーションのアクティビティ B から) )、onCreate
メソッドのバンドルが null でした。
アクティビティ A の以前の状態を保存するにはどうすればよいですか? アプリケーションの有効期間中だけデータを保存したい。
誰かがこれで私を助けることができますか?
アクティビティ A のコードは次のとおりです。
ボタンを押してアクティビティ A に戻るときのアクティビティ B のコードを次に示します。
android - onRequestPermissionsResult() の Android java.lang.IllegalStateException
私はSDカードを使用しているため、実行時に許可を取得しようとしています。コードは次のとおりです。
パーミッションを許可するとすぐに、「Failure delivery result ResultInfo{who=@android:requestPermissions:, request=111, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (エクストラがあります) }} アクティビティ {com.kaushik.fileexplorer/com.kaushik.fileexplorer.MainActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState" . 詳細なログキャットは次のとおりです。
そのコードの問題は何ですか?
android - Android: 場合によっては、「onSaveInstanceState の後にこのアクションを実行できません」という問題が引き続き発生する
Dialogfragment を使用していくつかのダイアログを表示すると、「IllegalStateException: Can not perform this action after onSaveInstanceState」が発生することがあります。
過去にこれは頻繁に発生し、ダイアログを表示/非表示にする DialogHelper を作成することで、この IllegalStateException の数を減らすことができました。
残念ながら、これに関するクラッシュ レポートをまだ受け取り、もう一度調べてみたところ、最終的にこの問題を正しく修正する方法を見つけることができませんでした。
現時点で報告されているクラッシュは、ボタンの onClick で発生しており、ダイアログ (DateSliderDialog など) を表示したいのですが、クラッシュを再現できません:/。
DialogHelper.showDialog(...) メソッドを呼び出す
ご覧のとおり、次のことを既に確認しています。
- アクティビティは終了していますか?
- アクティビティは (アクティビティのフラグを通じて) 実行されていますか?
なぜこれがまだ起こっているのか、そしてそれを修正する方法を知っている人はいますか?
提案と回答をありがとう
android - onSaveInstanceState メソッドの空のバンドル
グリッドビューでボレーを使用して、moviesdb から画像を表示します。次のステップは、そのグリッドビューをランドスケープ モードでも使用することです。したがって、この背後にある私のロジックは、データを含むリストを onSaveInstantState メソッド内のキーと値のペアとして次のように保存することです。
ログ出力のサイズは 20 で、これは正しい値です。ただし、デバッガーを使用している場合、行
空のバンドルをくれます。それはとても奇妙です!画像リストは正常に機能し、そこにあるものを見ることができます。何が間違っているのですか?
これが私のコードです。
ありがとう、
テオ。
android - バックグラウンドでアプリを強制終了すると、バンドルの savedInstanceState パーセル可能なオブジェクトは null=null になります
バックグラウンドで強制終了されたアプリを復元しようとしています。「config」変数にアクセスしようとすると、常にクラッシュします。これは、onSaveInstanceState に保存された後でも null であるためです (常に、デバッグ モードでテストし、outstate にはマップ内にオブジェクトがあります)。
私を本当に混乱させているのは、これが回転の場合に完全に機能していることです。したがって、小包からのオブジェクトの構築に問題はないと思います。バックグラウンドでアプリを強制終了すると機能しません。
バックグラウンドでアプリを強制終了した後、onCreate 内で savedInstanceState をログに記録すると、Config.BUNDLE は null=null (キーなし、値なし) を返しますが、同様のオブジェクトである Account.BUNDLE はそのままです。
また、別の String オブジェクトを savedInstanceState に追加しようとしましたが、これも正しく保存されています。