問題タブ [android-savedstate]

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 投票する
2 に答える
733 参照

android - ActionBar を介して新しいアクティビティに移動するときに、アクティビティの savedInstanceState() が呼び出されない

私はほぼ完成していて、この小さなことが私をとても悩ませているので、助けていただければ幸いです!

データベースのクエリからデータをonCreate()入力する3 つのアクティビティのうちの 1 つがあります。TextViewこの活動も主な活動です。以下のコードが示すように、アクション バーを介して移動する他の 2 つのアクティビティ。私はここで と の両方savedInstanceState()onRestoreInstanceState()使用しており、アプリケーションを完全に終了したときにのみ機能しますが、これは良いことですが、actionBar から別のアクティビティに移動したときにTextView、データベース。textviewアクションバーを離れるたびにまったく新しいクエリが発生するので、離れるときと同じにしたいのですが、それは望ましくtextViewありません。ユーザーが最初に到着したときの最初のクエリの結果を保持したい。

finish()およびonStop()メソッドを使用してアクティビティを終了させようとしたためsaveOnInstanceState()、アクティビティが破棄されたときに呼び出されましたが、動作していないか、適切な場所に配置していません。何か考えてください?!?!?!

onCreate() での savedInstanceState の適用:

onSavedInstanceState() と onRestoreInstanceState():

ActionBar を介してさまざまなアクティビティに移動します。

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

android - フラグメントアンドロイドにデータを保存する

連絡先に関連する特定の機能を実現しようとしています.デバイス内のすべての連絡先を表示するフラグメントがあります.最初に、フラグメントインスタンスが作成されたときに、連絡先が取得され、配列リストに保存され、リストビューに表示されます. 初めて取得するとき、連絡先を読み込むのに約 3 ~ 5 秒かかるため、読み込みビューを配置しました。このリストを保存して保持し、2 回目の連絡先リストの取得を高速化する方法はありますか?ボタンを押したときにフラグメントを置き換えています..ここに私のコードがあります。

アクティビティの で呼び出されonCreate()ます。

また、アクティビティでボタンを押すたびに、このメソッドを呼び出しています..

saveToBackStack()メソッド とonsavedInstanceState(Bundle)とについて検索しonRetainSavedInstance()ましたが、私の場合、ここで使用できますか? また、これらを使用するにはaddToBackStack()方法が必要ですか?..私はまだ初心者です.何か提案はありますか?

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

android - 誰かがアプリを閉じたり強制終了したりすると、コードはどうなりますか?

私は自分のアプリのデータを保存することを検討しており、さまざまな方法 ( onSaveInstanceStateonPause/onResume ) とさまざまな保存方法 ( onSaveInstanceState、SQLitePrefencesの状態) から選択しようとしています。

ユーザーが特定のことを行うと、これらの保存方法のそれぞれがどうなるか興味があります。具体的には、次の場合にどのメソッドが呼び出され、どのデータが消去されるかを知りたいです。

  • ユーザーはタスク スイッチャー ボタン (右下) をクリックし、数秒以内にオーバーレイを閉じます。すべてアプリ内から実行します。
  • ユーザーがタスク スイッチャーからアプリをスワイプアウトせずにホームをクリックし、アプリを再度開く
  • ユーザーがホームをクリックし、タスク スイッチャーからアプリをスワイプアウトしてから、アプリを再度開く
  • ユーザーがアプリを終了し、電話を再起動してからアプリを開く
  • ユーザーがアプリを終了し、Clean Master (またはその他のストレージ マネージャー) を使用してすべてのアプリのキャッシュをクリアするか、すべてのバックグラウンド タスクを強制終了してから、アプリを再度開きます。
  • ユーザー更新アプリ
0 投票する
3 に答える
7397 参照

android - android.support.v7.widget.Toolbar$SavedState のアンマーシャリング時の ClassNotFoundException

Android クラッシュ レポートに次のエラーが表示されます。

アクティビティを再開すると、断続的に発生するようです。どのコードでも、SavedState クラスに直接アクセスすることはありません。

編集: 私のアクティビティのレイアウトXmlは

ツールバーの XML は

そして、私のアクティビティの onCreate で私は

そして、私は appcompat-v7:22.1.1 を使用していますが、プロガードの後に​​これらのエラーが発生します。

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

android - 姿勢変化時のデータ保存

onCreate() メソッドに条件を入れて、以前のデータが存在するかどうかを確認しました。しかし、それは機能していません。私を導いてください。そして、this.dに onRestoreSavedState() メソッドを使用したくありません

再構成の間に状態を保存するときに、これらをキーとして使用します

LogCat ドキュメントの文字列

対応するライフサイクル メソッドが呼び出されたときに、これらの変数の値をインクリメントする必要があります。

TODO: TextView ごとに変数を作成する

TODO: 適切な TextView を TextView 変数に割り当てます。

キーと値のペアのコレクションを使用して状態情報を保存する カウント変数ごとに 1 行の 4 行のコード super.onSaveInstanceState(savedInstanceState);

表示されたカウンターを更新します このメソッドは、カウンターと TextView 変数が上記で指定された名前を使用することを想定しています public void displayCounts() {

}

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

java - 向きの変更時に保存されたインスタンス クラスが見つかりません

savedInstance と Bundle を使用して画面の向きが変わったときにリスト項目を補正しようとしていますが、複数の java.lang.ClassNotFoundException エラーが発生し続けます。コードをステップ実行すると、アイテムがバンドルに追加されたように見えますが、デバッグ モードで表示しようとすると、java.lang.ClassNotFoundException エラーが表示されます。「ts」のシリアル化可能な値でも同じエラーが表示されることを指摘したいと思いますが、画面を回転すると元の時間が維持されます。

何が起こっているのか本当にわかりません。助けていただければ幸いです。

主な活動//

保存されたインスタンス//

スタックトレース//