1

特定のURLからダウンロードされた画像を含む、ダウンロードされた情報でリストを埋めるウィジェットがあります。

URLから作成されたビットマップでsetImageViewBitmapを使用してこの画像を表示したいと思います。ビットマップを正常に作成できますが、問題が発生します。

私が使用するとき:

itmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(item.getPosterUrl()).getContent());
remoteViews.setImageViewBitmap(R.list_item.poster, bitmap);

画像はウィジェットリストに正常に表示されますが、ダウンロードは少し遅いので(通常、これはすべてのネットワーク操作で実行する必要があります)、ユーザーが残りの部分を見ることができる間、スレッドを使用してバックグラウンドでダウンロードを実行したいと思いましたリスト。

私の問題は、スレッドを使用すると、ダウンロードは正常に実行されますが、remoteViewsがイメージを更新しないことです。同じ結果のハンドラーでも試してみました。

runOnUIThreadのようなものが必要かもしれませんが、ウィジェットに同様のメソッドが見つかりませんでした。

私に何ができる?

前もって感謝します、

4

1 に答える 1

3

ステップ1:画像をダウンロードします。

RemoteViewsステップ2:ダウンロードが完了したら、画像を使用して、アプリウィジェットを更新します。AppWidgetManager

アップデート

AppWidgetProvider少し明確にするために、メインアプリケーションスレッドで呼び出される--で直接何かを確実にダウンロードすることはできないonUpdate()ため、ダウンロードに時間がかかりすぎる可能性があります。

ただし、画像をダウンロードしてアプリウィジェット自体を更新するにonUpdate()作業を委任できます。はアプリウィジェットを更新する場所ですが、アプリ内の他のコードでもアプリウィジェットを更新できます。を作成し、を取得して、更新を行うだけです。IntentServiceAppWidgetProviderIntentServiceRemoteViewsAppWidgetManager

于 2012-04-26T22:37:40.277 に答える