2010-12-13 9 views
1

StrictModeでBrad Fitzpatrickのarticleを読んだ後、私はいくつかの質問を残します。AndroidでファイルI/Oを実行中 - どのスレッドが属していますか

ファイルI/Oは私のアプリケーションにどこに属していますか?

私は自分のアプリケーションが実装をどのように処理するか、ディスクへのアクセスを行うためのスレッドを使用する必要がある場合は(私は、UIスレッドが間違っているが、新しいスレッドが悪化する?産卵可能性が知っていますか)? AsyncTaskにパラメータを送信しますか?共有変数?

@ブラッドこの記事を読んでいれば、私はサンプル(または場所へのリンク)があるブログの投稿が大好きだと思いますが、私はメモリの使用量を最適化したいだけです(特に、これはフレームワークで行われた)。

ありがとうございました!

答えて

4

スレッドを心配しないでください。新しいスレッドの起動はディスクより高速です。 Nexus Oneでは、IIRCではループで開始する新しいスレッド&を作成するのが〜1 msです。 AsyncTask、IntentService、または共有状態で新しいスレッド(適切なロック付き!):アプリケーションのための最も適切な何でも

使用。 AsyncTaskは、ユーザーが離れた場合でも動作し続けることが保証されていますが、使用が少し簡単で、完了したらUIスレッドに戻ります。 IntentServiceは実行されたまま終了しますが、結果とともにUIスレッドに戻るのには役立ちません。 UIスレッド上でハンドラに結果(ある場合)を送る必要があります。

+1

AsyncTaskが動作を継続することは保証されていないとお考えですか? –

+0

情報Bradさん、フリオとジンジャーブレッドの間で最適化されたフレームワークの特定のスポットをありがとう? – smith324

関連する問題