サービスを拡張するクラスがあり、サービスは基本的にクラウドからデータを取得し、リストビューにリストします.クラスがアクティビティを拡張しないため、「findviewById」メソッドを使用してリストビューを取得しようとするとエラーが発生します.誰も私がそれについてどうすればよいか知っていますか。
2570 次
2 に答える
1
サービスで UI を直接変更することはできません。実際には、ネットワーク I/O の進行中にユーザーが [戻る] を押してアクティビティを破棄した可能性があるため、UI がまったくない場合があります。
代わりに、サービスからアクティビティにメッセージを送信して、アクティビティが存在する場合は、新しいデータがあることをアクティビティに知らせる必要があります。これには、次を使用できます。
LocalBroadcastManager
Android サポート パッケージから、または- Square のOttoなどのサードパーティ メッセージ バスの実装、または
- に
Messenger
結び付けられたHandler
- 等
于 2013-09-17T18:08:25.253 に答える
0
こんにちは私の意見では、doinBackground メソッドでバックエンド ダウンロード データ部分を記述し、onPostexcute でデータをリスト ビューに設定する必要があるという点で、AsncTask を使用する方が良いと思います。
asynctask を調べたほうがよい
http://developer.android.com/reference/android/os/AsyncTask.html
サービスをバインドして、サービスからアクティビティへの通信を試みている間、サービスをバインドする方法を調べてください。
サービスをバインドするため
http://developer.android.com/guide/components/bound-services.html
于 2013-09-17T18:34:53.087 に答える