2016-12-26 6 views
0

複数のImageViewが含まれているappwidgetがあり、その画像を1度に1回更新する必要があります。画像はウェブに保存され、URLは回転するArrayListに保存されます。私たちはキャッシュを持つOkHttp3 DownloaderでPicassoを使っています。すべての画像が少なくとも一度表示された後でさえ、私たちのアプリは設定アプリのAndroidのデータ使用量オプションに従ったデータを引き続き使用しています。飛行機モードをオンにすると、ウィジェットは引き続き動作し、すべての画像を表示してキャッシュする必要があります。画像がキャッシュされていてもピカソがまだデータを使用しているのはなぜですか?Picasaはキャッシュされた画像のデータをappwidgetで使用しています

  • com.squareup.okhttp3:okhttp:3.2.0
  • com.squareup使用

    ライブラリを(我々はすでにアプリ/ウィジェットによってデータ消費量の他のすべての可能なソースを除外しました) .picasso:ピカソ:2.5.2

  • com.jakewharton.picasso:picasso2-okhttp3-ダウンローダ:アプリケーションオブジェクトのonCreateにおいて1.1.0

ピカソの初期化():

サービスから画像をロード
Picasso.Builder picassoBuilder = new Picasso.Builder(this) 
     .downloader(new OkHttp3Downloader(this)) 
     .indicatorsEnabled(true) 
     .loggingEnabled(true); 
    Picasso picasso = picassoBuilder.build(); 
    try { 
     Picasso.setSingletonInstance(picasso); 
    } catch(IllegalStateException e) { 
     UsageTracker.handleException(e); 
    } 

public static void updateImage(Context context, RemoteViews remoteViews, int resourceId, String url) { 
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 
    int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WidgetProvider.class)); 
    Picasso.with(context).load(url).into(remoteViews, resourceId, appWidgetIds); 
} 

それが指標とロギングがRemoteViewsのために動作しないことを普通の場合にも、誰もが知っているのですか?

+0

Picassoの 'setIndicatorsEnabled'を使って画像がキャッシュから読み込まれていないことを確認しようとしましたか? – akash93

+0

はい、ただし、appwidgetに表示されるインジケータはありません。彼らはアプリ自体で動作します。彼らはappwidgetsのためにRemoteViewsで動作するはずですか? – Sander

+0

私はなぜそうでなければならないのかについての理由は見当たりません。そうでない場合は、問題を開く価値があるかもしれません – akash93

答えて

0

誰かが同様の問題で質問に遭遇した場合に備えて、自分のクエストに答えます。

HTTPリクエストがサーバに送信され、キャッシュ状態が有効であってもサーバが304状態で応答しても、サーバ上でイメージの表示頻度を測定できます。私たちがAndroidで見ていたデータの使用は、イメージではなくヘッダーがたくさんありました。

関連する問題