0

サービスを拡張するクラスがあり、サービスは基本的にクラウドからデータを取得し、リストビューにリストします.クラスがアクティビティを拡張しないため、「findviewById」メソッドを使用してリストビューを取得しようとするとエラーが発生します.誰も私がそれについてどうすればよいか知っていますか。

4

2 に答える 2

1

サービスで UI を直接変更することはできません。実際には、ネットワーク I/O の進行中にユーザーが [戻る] を押してアクティビティを破棄した可能性があるため、UI がまったくない場合があります。

代わりに、サービスからアクティビティにメッセージを送信して、アクティビティが存在する場合は、新しいデータがあることをアクティビティに知らせる必要があります。これには、次を使用できます。

  • LocalBroadcastManagerAndroid サポート パッケージから、または
  • 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 に答える