1

現在、Web サーバーからの作成時に読み込まれるリストビューがあります。データベースの更新を定期的にポーリングするか、php スクリプトでデータベースを更新できるようにする必要があります。ポーリングではなく、データベースによって更新されることをお勧めします。

ポーリングに関する限り、サービスまたは非同期スレッドを実装できることはわかっています。timertask クラスも見つけました。

AsyncThread の場合: これを継続的に繰り返すことはできますか? から .start メソッドを呼び出すか

TimerTask の場合: これは asyncthread またはサービスよりも効率が悪いですか?

また、スレッド内に TimerTask を作成する必要がありますか? それとも独自のスレッドを作成しますか?

4

1 に答える 1

1

サーバーをクライアントに、クライアントをサーバーに変えようとすることは、間違った穴から食べようとするようなものです。元のデザインの性質と戦っています。

1 つには、電話ではなく、アプリケーションが継続的にオンになっていることに依存することはできません。携帯電話のアプリケーションは優先度が低いです。携帯電話のアプリケーションが使用できるエネルギーは限られています。携帯電話のアプリケーションも常にインターネットに接続されるとは限りません。

したがって、1 つには、独自のスレッドで Service を使用する必要があります (必要に応じて AsyncTask を使用できます)。応答を待っている UI スレッドをブロックしないように、サービスには独自のスレッドが必要です。また、AlarmManager を使用して、必要に応じて Service を起動または終了する必要があります (Service は、それ自体の過失ではなく、数回強制終了されるため)。

于 2011-02-06T10:11:35.287 に答える