2
我有一個BroadcastReceiver
,它監聽下載完成操作,以便在下載完成時打開文件。下載管理器的獨立廣播接收器
我的問題是,用戶可能會下載一個文件,然後最小化屏幕,然後取消登記BroadcastReceiver
,所以下載完成後文件不會自動打開。
如何設置獨立的BroadcastReceiver
,以便在應用程序停止/銷燬時打開圖像。我無法弄清楚如何讓它聽取下載完成操作。
private BroadcastReceiver downloadReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
long referenceId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
if (downloadReference == referenceId) {
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(referenceId);
Cursor cursor = downloadManager.query(query);
if (cursor.moveToFirst()) {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
if (status == DownloadManager.STATUS_SUCCESSFUL) {
Intent intentpic = new Intent();
intentpic.setAction(android.content.Intent.ACTION_VIEW);
intentpic.setDataAndType(Uri.fromFile(getActivity().getExternalFilesDir("/update/asd.jpg")), "image/*");
startActivity(intentpic);
if(receiverRegistered) {
getActivity().unregisterReceiver(downloadReceiver);
}
}
}
cursor.close();
Log.i(TAG, "Downloading of data just finished");
}
}
};
只需調用'DownloadManage#query(DownloadManager.Query query)'當您的應用程序啓動時,您將知道到目前爲止已下載的內容 – pskink