4

私のアプリケーションは基本的に、起動時に (起動が完了したレシーバーによって) 開始されるサービスであり、定期的にデータを収集し、ネットワーク経由で送信し、(おそらく AlarmManager を使用して) スリープ状態にする必要があります。アクティビティはありません - UI はまったくありません。

アプリケーション ロジックを実行するために追加のスレッドを生成する理由はありますか? そうでない場合、どこでロジックを実行する必要がありますか? OnStart メソッドで?

4

1 に答える 1

4

アプリケーション ロジックを実行するために追加のスレッドを生成する理由はありますか?

絶対。5 ~ 10 秒以内に応答しない場合、サービスは強制終了されます。その時間の間、メイン アプリケーション スレッドを拘束するものは何もありません。

IntentServiceとの併用をおすすめしAlarmManagerます。特に、自分がしていることをしている間、デバイスを起動したままにしたい場合は、 my WakefulIntentService.

また、「UI一切なし」についてですが、Androidマーケットでこのアプリを配布する場合、ユーザーはUIのない​​アプリを嫌うようですのでご注意ください。彼らはそれをインストールし、ランチャーにアイコンがないと混乱し、1 つ星の評価を与えます。実際の操作に UI が必要ない場合でも、ランチャーに少なくとも何らかのアクティビティを含めることを検討してください。これにより、ドキュメント、おそらく実行中の作業のログが表示され、作業の頻度を調整できるようになります。

于 2010-11-25T17:01:57.220 に答える