0

私は毎日24時間実行されるサービスを持っています。このサービスはアクティビティによって開始され、無期限に実行されます。サービス内では、別のスレッドが実行され、1分ごとにサーバーからデータをフェッチします。そのため、更新するたびにsendBroadcast、リストフラグメントを更新し、サービスからメッセージを受信し、ローダーを再起動してリストフラグメントを更新していました。

  1. この方法は正しいですか?
  2. listfragement(放送受信機を持っている)がsendBroadcastプロデュースを破壊した場合、何か問題がありますか?
4

1 に答える 1

3

すべてを廃棄して最初からやり直してください:)画面がオフになるとスリープ状態になるため、Androidでは「1日24時間」を実行することはほとんど不可能です。あなたがそれをつけたままにするならば、あなたはすぐにバッテリーを食べるでしょう。その部分をスクラップします。サーバーからのデータを毎分更新することも悪い考えです。ネットワーク呼び出しが多すぎるとバッテリーが消耗し、3Gネットワ​​ークでは時間がかかる場合があります。さらに、ユーザーはおそらく、別のアプリを使用しているときにこれらの更新を気にしないため、誰にも表示されないものを取得するためにリソースを浪費することになります。

必要に応じて、AralamManagerを使用してサービスの定期的な更新をスケジュールします。「毎分」の部分を再検討してください。アクティビティに更新のためにそれ自体を登録させonStart()、登録を解除しonStop()ます。

于 2013-01-08T06:55:06.103 に答える