0

自分の問題に対処するために何を探すべきかを知りたいだけです。インターネットからデータをダウンロードしてファイルに保存するアプリケーションを作成したいと考えています。ダウンロード中、アプリケーションは重要なデータを含む SMS メッセージを受信する必要があります。AlarmManager から実行されるサービスがあり、SMS を受信できる BroadcastReceiver があります。SMS レシーバー (BroadcastReceiver) からサービスにデータを送信する方法を知りたいですか?

4

1 に答える 1

3

質問に IntentService タグを追加したので、リクエストを実行するためにインテント サービスを使用していると思います。

私があなたの代わりに行うことは、通常のサービスを使用し、その中にローカル (マニフェストで宣言されていない) ブロードキャスト レシーバーをホストすることです。

その後、サービス自体でホストされている別のスレッドでダウンロードを実行できます。こうすることでブロードキャスト受信側から Service クラスにアクセスできるようになり、ダウンローダ スレッド / asynctask を内部クラスとして設定すれば通信できるようになります。

これにより、サービスの動作が少し変わります。インテントサービスは自己完結型であり、ジョブが終了すると自動的に終了しますが、stopSelf() を実行させる必要があります。

于 2013-03-29T22:07:30.190 に答える