問題タブ [onrestoreinstancestate]

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.

0 投票する
8 に答える
14400 参照

android - メモリを節約するために殺害活動をシミュレートする方法は?

Androidのドキュメントは次のように述べています:

「ユーザーではなくシステムがメモリを節約するためにアクティビティをシャットダウンすると、...」

しかし、この状況をシミュレートする方法は?メソッドをデバッグしたいのですが、onRestoreInstanceState(Bundle)方法がわかりません。

0 投票する
1 に答える
2879 参照

android - Android アクティビティのライフサイクル

アクティビティが回復したときに最初に呼び出されるのは? onRestoreInstanceStateまたはonActivityResult

0 投票する
1 に答える
5986 参照

android - src を動的に変更した後に Android イメージの状態を保存する

私は Android アプリケーションを開発しています。ここでは、ページに imageView があり、onLongClick でイメージ A からイメージ B に変更されます。ただし、ページを離れると、imageView はイメージ A に戻ります。状態を保存するにはどうすればよいですかその onpause、stop、および destroy が実行されるため、ImageView の現在のイメージ src が保存され、次にページにアクセスして作成されたときにロードされます。Androidでのデータ保存はしたことがありません。

簡単なデータ保存のチュートリアル/例は大歓迎です。

0 投票する
6 に答える
40679 参照

android - onRestoreInstanceState はいつ呼び出されますか?

理解できなくて申し訳ありませんが、私はアンドロイド開発の初心者です。

アクティビティ A とアクティビティ B を含むアプリケーションがあり、アクティビティ A からアクティビティ B に移動します。アクティビティ A を離れると、onSaveInstanceStateメソッドが呼び出されましたが、アクティビティ A に戻ると (同じアプリケーションのアクティビティ B から) )、onCreateメソッドのバンドルが null でした。

アクティビティ A の以前の状態を保存するにはどうすればよいですか? アプリケーションの有効期間中だけデータを保存したい。

誰かがこれで私を助けることができますか?

アクティビティ A のコードは次のとおりです。

ボタンを押してアクティビティ A に戻るときのアクティビティ B のコードを次に示します。

0 投票する
1 に答える
21306 参照

android - フラグメントは、向きが変更されたときに状態を復元します

アプリに「標準」フラグメント ナビゲーションを実装する必要があります (リンクを参照してください)。

問題は、デバイスが縦向きモードの場合は 1 つのフラグメントのみが表示され、横向きモードに回転すると 2 つのフラグメントが表示されるはずです。

私はこれを2つの異なる方法でやろうとしました:

1) 縦向きと横向きのレイアウトが異なるアクティビティを 1 つだけ使用します。

縦向きレイアウト xml:

そして、ここに横向きのレイアウトがあります:

アクティビティの onCreateメソッド:

そして、それが2番目のフラグメントをリフレッシュする方法です:

また、フラグメントの状態を保存して復元するので、ローテーション後にデータが消えることはありません。通常、このコードは私の場合は正しく機能します。

2) 2 つのアクティビティを使用し、最初のアクティビティの縦向きモードと横向きモードに同じレイアウトを使用します。

xml レイアウトは、ランドスケープの前のものと同じです。

onCreateメソッド (最初のケースのように、フラグメント エンティティは静的ではないことに注意してください): private ItemsFragment mItemsFragment; プライベート ItemDetailsFragment mItemDetailsFragment;

デバイスが縦向きモードの場合は、新しいアクティビティを開始します。

そして最後に、2 番目のアクティビティのonCreateメソッド:

デバイスが横向きモードに回転すると、2 番目のアクティビティが終了し、1 番目のアクティビティに 2 つのフラグメントが表示されます (予想どおり)。

質問:

最初のケースでは、フラグメントを静的変数として保存します。このため、ポートレート モードまたはランドスケープ モードで 2 番目のフラグメントの状態を変更してもかまいません (同じフラグメントが使用されます)。しかし、静的フィールドとして保存するのは良い考えではないと思います。

2 番目のケースでは、Activity A Fragment B (横向き) と Activity B Fragment B (縦向き) を同期する方法がわかりません。フラグメントで何かを変更して (つまり、トグル ボタンなど)、デバイスを回転させると、別のフラグメントに変更を適用する必要があります。

一般的に、どのケースが良いですか? また、2 番目の場合、どうすれば同期の問題を解決できますか? または、別の簡単な方法があるかもしれません。読んでくれてありがとう、あなたが私を助けてくれることを願っています:)

0 投票する
1 に答える
29 参照

android - SaveInstanceState で属性とリスターを処理する方法

Android アプリを作成していますが、SaveInstanceState() を実装していないため、ダイアログを回転するとクラッシュします。文字列やプリミティブなどの単純なオブジェクトを保存および復元することは、かなり簡単に思えます。しかし、Context、AttributSet、いくつかのリスナーなどのより複雑なオブジェクトも保存したいと思いますか? どうすればそれを処理できますか?私には、それらは実際にはバンドルに収まるようには見えません。助けていただければ幸いです:)

0 投票する
2 に答える
4437 参照

android - Android カスタム複合ビューの保存と復元の状態が機能しない

解決...

他のコントロールを含む複合ビューがあります。onSaveInstanceStatesaveとをオーバーライドしようとしていますonRestoreInstanceStateが、奇妙な結果が得られます。

へのParcelable state引数onRestoreInstanceStateは、 のカスタム サブクラスではなく、BaseSavedState常にのSavedStateようですBaseSavedState.EMPTY_STATE(以下の「常に失敗する」コードのコメントを探してください...

SavedState.writeToParcelの後に呼び出されていないため、問題は保存部分にある可能性が高いonSaveInstanceState enters. ようonSaveInstanceStateですParcel.

違いがある場合、このビューはフラグメント内でホストされます。

何か案は?

これが私のクラス定義です:

これが私のonSaveInstanceStateとのonRestoreInstanceStateペアです:

これが私のカスタムBaseSavedStateサブクラス(の内部クラスAddressInput)です: