5

私はAndroidアプリケーションを作成しています。サーバーからのダウンロードプロセスを保持します。アプリケーションが実行され、クラッシュすることなくデータを維持するまでは正常に実行されていますが、以下に説明するように、問題が発生し続けています。

ホームボタンを押してアプリケーションを最小化すると、久しぶりにアプリケーションを開くと、アプリケーション内のすべてのデータが削除されます。それは私に「ヌルポインタ例外」を与えます。ArrayList値も削除され、0サイズのarraylistが得られます。

ホーム画面からOnResumeのみを使用して最大化した後にアプリケーションを開いていますが、それ自体が呼び出されませんでした。

なぜこの問題が発生するのかわかりません。誰かが私に解決策を提案し、私が間違っていることを教えてもらえますか?

4

3 に答える 3

3

はい、@ paradxが言ったように、アプリがバックグラウンドにあるときにガベージコレクターがデータを破棄するのは事実です。最後に、データがSQLiteまたはsavedInstanceStateに保存されるため、@paradxの提案に基づいた解決策を見つけました。

静的な値の一部を

 intent.putExtra("static key","static value");

次に、静的ハッシュマップがファイルに書き込まれ、後で使用するために取得されます。これで、この問題でアプリケーションがクラッシュすることはありません。

誰かがそれを使用できるように、私はこのソリューションを投稿しました。

于 2012-06-08T07:36:02.507 に答える
1

私の推測では、アプリがバックグラウンドにある間、ガベージコレクターはデータを破棄します。組み込みのSQLiteデータベースまたはonSaveInstanceState()ライフサイクルメソッドのsavedInstanceStateバンドルにデータを保存して、onRestoreInstanceState()メソッドにロードし直してみてください。

于 2012-06-07T13:54:15.687 に答える
0

apache HTTPクライアントまたはUrlConnectionを使用しましたか?

ApachehttpクライアントまたはURLConnectionを参照してください

間違った使用はそのようなNPEにつながる可能性があります。logCatの出力も投稿していただけますか?

于 2012-06-07T13:18:47.143 に答える