自分の問題に対処するために何を探すべきかを知りたいだけです。インターネットからデータをダウンロードしてファイルに保存するアプリケーションを作成したいと考えています。ダウンロード中、アプリケーションは重要なデータを含む SMS メッセージを受信する必要があります。AlarmManager から実行されるサービスがあり、SMS を受信できる BroadcastReceiver があります。SMS レシーバー (BroadcastReceiver) からサービスにデータを送信する方法を知りたいですか?
質問する
1404 次
1 に答える
3
質問に IntentService タグを追加したので、リクエストを実行するためにインテント サービスを使用していると思います。
私があなたの代わりに行うことは、通常のサービスを使用し、その中にローカル (マニフェストで宣言されていない) ブロードキャスト レシーバーをホストすることです。
その後、サービス自体でホストされている別のスレッドでダウンロードを実行できます。こうすることでブロードキャスト受信側から Service クラスにアクセスできるようになり、ダウンローダ スレッド / asynctask を内部クラスとして設定すれば通信できるようになります。
これにより、サービスの動作が少し変わります。インテントサービスは自己完結型であり、ジョブが終了すると自動的に終了しますが、stopSelf() を実行させる必要があります。
于 2013-03-29T22:07:30.190 に答える