1

だから私はたくさんの読書をしてきました.Androidの古いものAsyncTaskでは、それをアクティビティのインスタンスにリンクする必要があることに気付きました; ただし、向きを変更すると、この特定のアクティビティが破棄され、再作成されてメモリ リークが発生します。1AsyncTaskつ目はアクティビティの最初の実装を指し、表示されているのは 2 番目の実装です。3.0以降のLoaderクラスはこれのほとんどを処理しましたが、アプリを初期化するときにデータベースをロードする方法について混乱しています.

現在、私は AsyncTask を使用していますが、読み込み中に誰かが方向を変更すると、メモリ リークが発生することに気付きました。ローダーを使用してこれを行うにはどうすればよいですか? ディスプレイを更新しています (タイムアウトを防ぎ、何が起こっているかをユーザーに知らせるため)。完了したら、アラートを閉じます。

ローダーを使用してこのロードを行うにはどうすればよいですか?

ありがとう!ジョン

4

2 に答える 2

0

ジョン、

Asynctask がアクティビティのインスタンスを必要とするという意味が実際にはわかりませんか? アクティビティへの参照を渡すことなく、常に AsyncTasks を使用しています。それはあなたがする必要があることですか?アプリケーション コンテキストを使用してアクティビティ リークを回避できますか?

于 2012-09-14T16:58:02.023 に答える
0

より明確にするためにコードを投稿できますか。問題を解決する方法はたくさんあります。OnProgressUpdate は UI スレッドで呼び出されるため、ハンドラーまたはインテントを介してアクティビティにメッセージを送信するだけで、AsyncTask がアクティビティ コンテキストではなくアプリ コンテキストのみを処理するようにすることができます。繰り返しますが、いくつかのコードを投稿してください。

于 2012-09-14T21:32:51.987 に答える