1

まず、私は Android の初心者であることをお伝えしておく必要があります (Java の経験はまったくありません)。

サーバーから継続的にデータを取得し、http ポスト要求を通じてデータを返すアプリを作成しています。問題は、サーバーからの実際のプルを処理する最善の方法は何かということです。AsyncTask を使用するか、別のスレッドを作成してその上で実行する必要がありますか? この目的のためのより良い方法はありますか?

5分ごとにデータを取得します。(これによりバッテリーが非常に速く消耗することは承知しており、間違いなくAndroidのC2DMフレームワークを使用する必要があります。しかし、これまで経験がなく、締め切りが迫っているため、時間があるまでこれを行う必要があります実装方法を学びます。)

アドバイスをいただければ幸いです。

4

2 に答える 2

2

C2DM の代わりに、デバイスとサーバーの間で永続的な TCP 接続を行うことができます。その後、5 分ごとに、サーバーはデバイスに tickle をプッシュできます。くすぐられると、デバイスは HTTP ポストを介して情報を要求できます。

これを行う方法のサンプル コードを次に示します。アプリが終了した後でも、接続はバックグラウンド スレッドで開いたままになります。

永続的な TCP ソケットの作成と管理: http://openmobster.googlecode.com/svn/trunk/cloud/android/connection/src/main/java/org/openmobster/core/mobileCloud/android/module/connection/NotificationListener。ジャワ

完全開示: 私は OpenMobster のチーフ エンジニアであり、このコードを書きました。好きなものを自由に使用するか、それが必要な場合はアイデアを得てください

ありがとう

于 2012-03-21T16:34:56.797 に答える
0

バックグラウンドでデータをプルする必要がありますか (アプリが「開かれておらず、Android デバイスがスリープしている場合でも)」あなたがC2DMに言及したので、それがあなたが望むものだと思います。もしそうなら..流行語はAlarmManager(繰り返し時間付き)/BroadCastReceiverであり、おそらくユーザーに通知するためのNotificationManagerです。AlarmManager を使用してイベントを (5 分ごとに) スケジュールし、Br​​oadcastReceiver を使用してそれらのイベントを受信し、5 分ごとにやりたいことを実行します:)

于 2012-03-21T16:00:46.110 に答える