2012-06-23 4 views
0

저는 개발중인 응용 프로그램에서 DownloadManager와 비슷한 기능을 구현하고 있습니다. AsyncTask를 사용하여 다운로드를 백그라운드로 푸시합니다.
이 AsyncTask는 내 활동 중 하나에서 인스턴스화 된 예 : DownloadService이라는 서비스 안에 있습니다. 즉, 이는 여러 다운로드가 활동의 다른 인스턴스에서 시작될 수 있음을 의미합니다.
내가하고 싶은 일은 현재 실행중인 모든 다운로드에 진행 상황을 보여주고 다운로드를 일시 중지하거나 다시 시작할 수있는 특정 활동을 갖는 것입니다.AsyncTask의 실행중인 인스턴스를 검색하는 방법은 무엇입니까?

답변

1

그런 경우를 원할 경우 서비스에 시작된 모든 비동기 작업을 배열에 저장 한 다음 http://developer.android.com/reference/android/os/AsyncTask.html#getStatus%28%29으로 상태를 확인할 수 있습니다.

희망이 도움이됩니다.

+0

((YourApplication)getApplication()).someMethodToGetDownloadService()를 호출하여 내 애플리케이션이

  • 활동에 사용 android:name="YourApplication"
  • 으로 매니페스트 파일의 <application> 태그를 선언 말하는 네가 말한 배열을 만들었다. 내가 생성 된 활동과 다른 활동으로 어떻게 접근 할 수 있습니까? 또한 여러 활동에 걸쳐 어떻게 추가 할 수 있습니까? –

  • 0

    액티비티 내에 DownloadService을 수용하는 대신 응용 프로그램 당이 클래스의 인스턴스가 하나만 존재하므로 클래스 액티비티 안에 앱의 Application 클래스를 클래스 멤버로 저장하십시오. 그런 다음 ((YourApplication)getApplication()).getDownloadService()으로 전화하여 활동 내역을 검색 할 수 있습니다. 당신은해야합니다 :

    1. 이 응용 프로그램을 확장하는 클래스를 작성, 잘
    +0

    'DownloadService'는 별도의 클래스라고 말했기 때문에 (저는 액티비티 안에 포함하지 않았습니다. 그냥 인스턴스화했습니다). –

    +0

    그런 다음 Application 클래스 내부에서 인스턴스를 생성하십시오. 그것을 활동에서 검색하고 그것에 작업을 제출하십시오. 그런 다음 모든 실행중인 작업을 검색하고 작업을 허용 할 수있는 진행률 작업을 수행 할 수 있어야합니다. – Jeshurun

    관련 문제