おなじみの質問のように見えます。しかし、私は完全な解決策を得ることができなかったので、この質問をしました。
私のアプリケーションでは、30k 文字列のデータを取得し、それを文字列配列に格納しています。このデータを Web サーバーからフェッチするには時間がかかるため、このアクションをバックグラウンドで実行し、それまで UI スレッドでスプラッシュ スクリーンを表示しています。
したがって、この文字列の配列が作成され、に入力されSplashActivity
、作成されPublic
Static
ます。そして、次のように、ListViewActivity という名前の次のアクティビティでこれを使用しています。
SplashActivity.myArrayOfStrings;
ここで問題は、私が入っていListViewActivity
てi press Home button
、3〜5分間放置してアプリArrayIndexOutOfBoundsException
を再度開いてみると、SplashActivityの配列アイテムが破棄され、ListViewActivityでその値にアクセスしようとしているためです。
そのため、そのようなデータを保存して、すべてのアクティビティで一度だけフェッチする方法を知っておく必要があります。
毎日 30,000 個の文字列が変更されるため、Shared Preference のようなものは必要ありません。
アプリで SQLite を使用したことはありませんが、SpalshActivity にいるときに文字列をデータベースに保存すると、他のすべてのアクティビティでデータを使用できますか? アプリがバックグラウンドになり、5 分後に再度開いた場合でも、このデータは存在するのでしょうか??
それとも、より良い明白な解決策がありますか??
ありがとうございました