배경에 큰 파일 (약 50MB)을 다운로드하는 기능을 구현할 예정입니다.Android 마켓과 같은 파일 다운로드
Android 마켓처럼하고 싶습니다. 사용자가 파일을 다운로드하기 시작할 때 상태 표시 줄에 진행률 표시 줄이 나타나고 완료 될 때 내 응용 프로그램에 알립니다.
힌트를 제공해 주시겠습니까? 내 질문에 높은 품질이 아니라는 것을 알고 있지만 전에 연구를 해왔으며 단순히 솔루션을 검색 할 키워드가 없습니다.
배경에 큰 파일 (약 50MB)을 다운로드하는 기능을 구현할 예정입니다.Android 마켓과 같은 파일 다운로드
Android 마켓처럼하고 싶습니다. 사용자가 파일을 다운로드하기 시작할 때 상태 표시 줄에 진행률 표시 줄이 나타나고 완료 될 때 내 응용 프로그램에 알립니다.
힌트를 제공해 주시겠습니까? 내 질문에 높은 품질이 아니라는 것을 알고 있지만 전에 연구를 해왔으며 단순히 솔루션을 검색 할 키워드가 없습니다.
다음은 몇 가지 키워드를 제공하기위한 간단한 개요입니다.
우선 알림을 만드는 방법은 매우 간단하고 문서화가 잘되어 있어야합니다. 정상적인 알림을 작성하는 방법을 모르는 경우 Status Bar Notifications을 확인하십시오.
다음 단계는 포함 된 사용자 지정 레이아웃 알림을 생성하는 것입니다 ProgressBar
또한 same page에 설명되어 있습니다 (이 AFAIK에 대한 사전 구축 된 레이아웃이 없기 때문에). 당신이 그것에 대해 Notification
인스턴스를 생성하면, 당신은 참조를 유지해야하며, 또한 기본적으로 UI-의 RemoteViews.setProgressBar()
을 참조 NotificationManager
참조가 여기에 당신의 ProgressBar
를 통해
notification.contentView.setProgressBar(R.id.yourprogressbar, 100, 42, false);
nm.notify(notificationId, notification);
nm
업데이트하는 데 사용할 사물의 측면. 실제로 백그라운드에서 파일을 다운로드하려면 AsyncTask을 사용하는 Service을 사용해야합니다 (서비스는 UI 스레드에서 실행되므로 자주 오도하는 경우가 있습니다). AsyncTask.publishProgress()
을 사용하여 다운로드 진행률 업데이트를 UI 스레드에 보내고 진행률 표시 줄을 AsyncTask.onProgressUpdate()
안에 업데이트 할 수 있습니다.
@ alextsc의 답변 외에도 API 레벨 9 이상 만 지원하는 경우 연결 변경 (예 : WiFi-> 3G)과 같은 세부 정보를 포함하여이 모든 것을 처리하는 DownloadManager
을 사용할 수 있습니다. 하지만 Android 2.3 이상에서만 사용할 수 있습니다.
API 레벨 7을 사용해야하지만 내 마음에 간직 할 것입니다. 고맙습니다 ! – hsz
고맙습니다. 잘 작동합니다. :-) – hsz
위와 같이했지만 설정 -> 응용 프로그램 -> 응용 프로그램 관리 -> MyApp를 클릭합니다. 강제 종료를 클릭하면 서비스가 중지됩니다. 그 안드로이드 마켓 다운로드에서 일어나지 않습니다. 서비스 안드로이드 마켓을 만드는 방법을 알려줄 수 있습니까? –
@abbas 일반 앱에서는 불가능합니다. 시장은 특별한 권리가있는 시스템 앱입니다. 일반 앱은 보안상의 이유로이 작업을 수행 할 수 없으므로 사용자는 악성 코드가 포함되어있는 경우 언제든지 그러한 앱을 중지 할 수 있어야합니다. –