Android DownloadManager 다운로드 진행 조회 (시리즈 3)
3571 단어 android
Android DownloadManager 다운로드 진행 조회 (시리즈 3)
나 는 이전에 Android DownloadManager 에 관 한 글 을 썼 다. (시리즈 1) 의 링크 주소:http://blog.csdn.net/zhangphil/article/details/48949027 (시리즈 2) 'Android DownloadManager 다운로드 상태 조회 (2)'링크 주소:http://blog.csdn.net/zhangphil/article/details/48976427
글 (1) 은 Android DownloadManager 의 기본 사용 방법 을 간단하게 소개 하 였 으 며, 글 (2) 은 Android DownloadManager 의 기본 다운로드 상태 조회 이다.본 고 는 앞의 두 편의 글 을 바탕 으로 작성 한 것 이다. 이 글 은 주로 Android DownloadManager 의 특정한 다운로드 작업 의 다운로드 진 도 를 조회 하 는 방법 을 소개 한다. 예 를 들 어 Android DownloadManager 를 사용 하여 특정한 큰 파일 을 다운로드 하고 어느 순간 에 이 파일 이 얼마나 다운로드 되 었 는 지 조회 해 야 한다.테스트 의 MainActivity. java:
package zhangphil.demo;
import android.app.Activity;
import android.app.DownloadManager;
import android.app.DownloadManager.Query;
import android.app.DownloadManager.Request;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private DownloadManager downloadManager;
private long Id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
query();
}
});
downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
// 。
Request request = new Request(
Uri.parse("http://apkc.mumayi.com/2015/03/06/92/927937/xingxiangyi_V3.1.3_mumayi_00169.apk"));
// WIFI
request.setAllowedNetworkTypes(Request.NETWORK_WIFI);
//
request.setTitle(" ");
request.setDescription(" ");
// 。
request.setNotificationVisibility(Request.VISIBILITY_VISIBLE | Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
// 。
// Android
// request.setDestinationUri(Uri.fromFile(new File("")));
// Android
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "my.apk");
// enqueue ...
Id = downloadManager.enqueue(request);
}
// , , ?
private void query() {
Query downloadQuery = new Query();
downloadQuery.setFilterById(Id);
Cursor cursor = downloadManager.query(downloadQuery);
if (cursor != null && cursor.moveToFirst()) {
int fileName = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
int fileUri = cursor.getColumnIndex(DownloadManager.COLUMN_URI);
String fn = cursor.getString(fileName);
String fu = cursor.getString(fileUri);
int totalSizeBytesIndex = cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
int bytesDownloadSoFarIndex = cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
//
int totalSizeBytes = cursor.getInt(totalSizeBytesIndex);
//
int bytesDownloadSoFar = cursor.getInt(bytesDownloadSoFarIndex);
Log.d(this.getClass().getName(),
"from " + fu + " " + fn + " :" + totalSizeBytes + " :" + bytesDownloadSoFar);
cursor.close();
}
}
}
MainActivity. java 가 의존 하 는 activitymain. xml 파일 코드 에는 조회 상 태 를 다운로드 하 는 단추 만 포함 되 어 있 습 니 다. 조회 이 벤트 를 촉발 하기 위해 서 는 더 이상 군말 을 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.