0

問題が1つあります。私は、サーバーから受け取ったものの基盤となるメインUI上のスイッチの状態を更新したいと思います。わかっているように、アンドロイドはメインスレッドでインターネット接続を許可していません。非同期でUIを更新する

私はAsyncを使用しました。残念ながら、Asyncの内部でUIを変更することはできません。私は内部の私のコードで "while(true)"を行うAsyncTaskが欲しいです。それは、サーバーと応答の基盤にUIを常に更新するように依頼します。

誰かが私を助けることができますか?

ありがとうございました。私の悪い英語を申し訳ありません。

編集:私はAndroidアプリケーションについて話しています。

答えて

0

AsyncTaskには、UIでの操作を目的としたメソッドがあります(例:onPostExecute)。しかし、AsyncTaskは、ほんの数秒かかる操作にのみ使用する必要があり、他のAsyncTaskをハングさせる可能性があります。だから、

内部の私のコードで "しばらく(真)" を行うには、オプションではありません。サーバーとチャットするには、serviceを使用します。

プロセスといくつかの詳細については、gotchasを参照してください。

+0

AsyncTaskを呼び出すスレッドの中でwhile(true)を実行することで解決しました。実際には、これを実行するのが受け入れられる方法かどうかは分かりません。お知らせ下さい! –

+0

AsyncTasksは、(API 11の)単一のバックグラウンドスレッドで連続して実行されるため、長時間実行されるワーカーが他のスレッドをブロックできる理由があります。 –

+0

私は知っているので、サービスを利用する方が良いですか?右? –

関連する問題