1

私のアプリケーションでは、SAX パーサーを使用して XML データを解析しています。しかし、解析操作全体をバックグラウンドで実行したい、つまりワーカー スレッドを使用して実行したい。ハンドラー、AsyncTask、またはサービスを使用して、この 3 つの間で多くの混乱があるため、これが最適なソリューションになります。

4

3 に答える 3

2

AHandlerは何もしません。これは、バックグラウンド スレッドと UI スレッドの間で処理を渡すための手段です。AnAsyncTaskはここに行く方法です: が組み込まれているHandlerため、完了したら UI スレッドに戻って何かを実行したり、作業の進行に合わせて更新を公開したりすることもできます。単純な worker を使用するのと同じですThreadが、ビルトインの便利Handlerさがあります。もちろん、 a の動作がニーズに合わない場合は、 workerThreadHandler自分自身を使用できます。Handler

これServiceはやり過ぎのように聞こえます。これは、処理を他のアクティビティで利用できるようにする方法です。また、問題を回避できませんService。UI スレッドで呼び出され、UI のブロックを回避するために別のスレッドを起動する必要があります。

于 2012-06-28T06:54:37.600 に答える
0

単純な Java スレッドを生成し、そこで作業を行うことができます。

于 2012-06-28T06:48:24.283 に答える
0

すべてに利点があります。したがって、すべてのいずれかを答えてください。それはあなたのニーズに依存します..

簡単な実装が必要な場合などに使用できるAsyncTask with predefined structure and callbacksため、同様のサービスには特定のケースで独自の利点がある場合があります..

AsyncTask にはさまざまな作業用の構造とコールバックが事前定義されているため、ハンドラーは AsyncTask よりも柔軟性が高くなります。したがってhandler with any thread with、事前定義された構造とコールバックの制限はありません。

于 2012-06-28T06:49:55.187 に答える