0

ListViewダウンロード可能なオブジェクトの束を示す があります。ユーザーがリスト アイテムをクリックすると、アイテムが を通じてダウンロードAsyncTaskされ、ダウンロードの進行状況を示す通知も行われます。また、進行状況を ListView アイテム内に表示したいと考えています。

アイテムをオフラインで使用できるようにするときは、多かれ少なかれ Google ドライブのように動作したいと考えています。

私の問題: ダウンロードが完了する前にアプリが閉じられる状況を考えると、ダウンロード ステータスを "保存" する堅牢な方法が思い浮かびませんgetView()

onProgressUpdate()ダウンロードの進行状況をデータベース、アクティビティ内の変数に保存するか、ListView 子項目を直接変更するのが最適ですか?

編集

興味のある方のために、ダウンロード ステータスが変化したときにブロードキャストを送信するサービスを使用しました。

アクティビティ:

private BroadcastReceiver mDataSetChangedReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(downloadDetailFragment!=null){
            downloadDetailFragment.notifyDataSetChanged();
        }
    }
};

@Override
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  LocalBroadcastManager.getInstance(this).registerReceiver(mDataSetChangedReceiver,
      new IntentFilter(DownloadService.DOWNLOAD_STATUS_CHANGED));
}

@Override
protected void onDestroy() {
  super.onDestroy();

LocalBroadcastManager.getInstance(this).unregisterReceiver(mDataSetChangedReceiver); }

非同期タスク:

        Intent intent = new Intent(DownloadService.DOWNLOAD_STATUS_CHANGED);
        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
4

1 に答える 1