Saya menerapkan fitur seperti DownloadManager di aplikasi yang saya kembangkan. Saya menggunakan AsyncTask untuk mendorong unduhan ke latar belakang.
AsyncTask ini ada di dalam layanan bernama misalnya DownloadService
yang dipakai pada salah satu aktivitas saya. Artinya, beberapa pengunduhan dapat dimulai dari berbagai aktivitas yang berbeda.
Yang ingin saya lakukan adalah membuat aktivitas tertentu agar semua unduhan yang sedang berjalan menunjukkan kemajuannya dan memiliki tombol untuk menjeda atau melanjutkan pengunduhan unduh.
Bagaimana cara mengambil instance AsyncTask yang sedang berjalan?
Jawaban (2)
Jika Anda menginginkan hal seperti itu, Anda dapat menyimpan dalam Array semua Tugas Async yang dimulai di layanan, dan kemudian memeriksa statusnya dengan http://developer.android.com/reference/android/os/AsyncTask.html#getStatus%28%29.
Semoga ini membantu!
person
Dimitris Makris
schedule
23.06.2012
Katakanlah saya membuat array yang Anda katakan. Bagaimana saya bisa mengaksesnya dalam aktivitas yang berbeda dari aktivitas pembuatannya? Dan juga bagaimana saya bisa menambahkannya ke berbagai aktivitas?
- person 2hamed; 24.06.2012
Alih-alih menampung DownloadService
di dalam suatu Aktivitas, tempatkan DownloadService
di dalam kelas Application
aplikasi Anda sebagai anggota kelas, karena hanya akan ada satu instance dari kelas ini per aplikasi. Anda kemudian dapat mengambilnya dalam aktivitas Anda dengan menelepon ((YourApplication)getApplication()).getDownloadService()
. Kamu harus:
- Buat kelas yang memperluas Aplikasi, misalnya Aplikasi Anda
- Deklarasikan dalam tag
<application>
file manifes sebagaiandroid:name="YourApplication"
- Gunakan dalam aktivitas Anda dengan memanggil
((YourApplication)getApplication()).someMethodToGetDownloadService()
person
Jeshurun
schedule
23.06.2012
Seperti yang saya katakan,
DownloadService
adalah kelas terpisah (saya tidak menyimpannya di dalam aktivitas saya, saya hanya membuat instance di sana).
- person 2hamed; 24.06.2012
Bagus, lalu buat instance-nya di dalam kelas Aplikasi Anda. Ambil aktivitas tersebut dan serahkan tugas ke aktivitas tersebut. Maka Anda harus dapat memiliki aktivitas kemajuan di mana Anda dapat mengambil semua tugas yang sedang berjalan dan mengizinkan pengoperasiannya.
- person Jeshurun; 24.06.2012