1

私は標準的なアクティビティを持つAndroidアプリを書いていますが、着信/発信の通話とテキストを常に監視する必要があります。さらに、アプリはアクティビティを開かずに1日1回ユーザーに情報を通知する必要があります。ユーザーに通知する情報はデータベースに保存されるため、アクティビティとの通信は必要ありません。私は1週間研究を続けてきましたが、それでもこれをどのように行うかを決めることができません。私の本能は、常に放送受信機を実行しているリモートサービスが必要だと言っていますが、私が見るすべてのリモートサービスの例は非常に複雑です。誰かが私が取る必要があるステップをよりよく理解するのを手伝ってもらえますか?前もって感謝します。

4

1 に答える 1

2

私の本能は、常に実行されているブロードキャスト レシーバーを備えたリモート サービスが必要であることを教えてくれます。

いいえ。私がそう言う理由は:

  • アプリケーションは 1 つだけなので、「リモート」サービスは必要ありません。
  • 「常に実行中のブロードキャスト レシーバーを備えたサービス」は本当に悪い考えです。ユーザーはタスク キラーであなたを攻撃し、そうしなくても、スペースの無駄としていずれにせよ Android はあなたのサービスを終了します。

BroadcastReceiversいつでも発生する可能性のあるブロードキャストには、マニフェストに登録されているものを使用します。これは、アプリケーションが他に何も実行されていない場合でも制御できるためです。メイン アプリケーション スレッドで( 内の) コントロールを取得IntentServiceするため、それらに必要な「重い作業」を実行するために を使用するため、できる限り少ない作業を行う必要があります。また、1 日 1 回のイベントでを発生させるために を(または、場合によっては)に通知するために使用します。BroadcastReceiversBroadcastReceiveronReceive()AlarmManagerBroadcastReceiverIntentServiceNotification

また、「...送信...テキストを監視する」方法はなく、「...受信...テキストを監視する」には、Android の文書化されていない機能を使用する必要があることに注意してください。おそらく android.provider.Telephonyなくなることはありませんが、関連するリスクを認識する必要があります.

于 2010-12-26T00:43:09.560 に答える