YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Indonesian subtitles

← App Lifecycle and Services

Get Embed Code
10 Languages

Showing Revision 2 created 02/03/2015 by SP154Upload.

  1. Kembali ke Lesson 4
  2. Android runtime akan mematikan apps
  3. tanpa aktifitas yang terlihat
    untuk mengosongkan resources
  4. yang dibutuhkan oleh foreground app.
  5. Bagaimana bila app Anda memiliki task
    yang harus berjalan terus
  6. saat aktifitas tersembunyi?
  7. Seperti mengunduh file, mengunggah foto,
    atau memutar musik.
  8. Ada komponen aplikasi untuk itu.
  9. Services.
  10. Kami sudah perkenalkan aktifitas,
    penyedia konten,
  11. penerima broadcast dan intent.
  12. Services adalah bagian terakhir dari
    teka-teki komponen app Android.
  13. Anda memulai services sama seperti
    melakukan aktifitas,
  14. dengan memasukkan intent ke
    panggilan startService.
  15. Services dapat dihentikan
    dengan cara yang sama.
  16. Memanggil stopService dan
    memasukkan nama service
  17. yang ingin dihentikan.
  18. Tak seperti aktifitas, services
    tidak memiliki interface pengguna
  19. dan bekerja pada prioritas lebih tinggi
    dari aktifitas background.
  20. Ini berarti app dengan service berjalan,
  21. cenderung tidak dimatikan oleh runtime
  22. untuk mengosongkan resource bagi
    aktifitas foreground.
  23. Faktanya, secara default, sistem akan
    berusaha mengaktifkan kembali services
  24. yang dimatikan sebelum dihentikan
    dari dalam app.
  25. Ini tercermin dalam lifecycle sederhana.
  26. Dibanding dengan aktifitas,
    services dirancang
  27. untuk mengeksekusi task yang bekerja
    lebih lama hingga tidak boleh diganggu.
  28. Biasanya, Anda hanya perlu override
    handler onStartCommand,
  29. di sinilah tempat memulai background task
  30. yang ingin Anda eksekusi.
  31. Perhatikan tidak ada handler
    untuk memonitor perubahan status
  32. untuk mencerminkan app yang pindah
    ke background.
  33. Ini karena service yang berjalan
    mengirim sinyal ke framework,
  34. bahwa app yang dimuatnya harus
    dianggap prioritas lebih tinggi
  35. dibanding app lain di background yang
    tidak menjalankan services.
  36. Pada satu waktu service Anda mungkin
    sedang melakukan task,
  37. yang meski tidak memiliki UI,
    tak boleh diinterupsi
  38. tanpa mengganggu kenyamanan pengguna.
  39. Misalnya, memutar musik atau
    butuh bantuan navigasi mobil.
  40. Dalam hal ini Anda dapat menunjukkan
    bahwa server Anda
  41. harus dianggap sedang berjalan
    di foreground
  42. dengan memanggil startForeground.
  43. Anda perhatikan panggilan ini memunculkan
    notifikasi.
  44. Yang akan ditampilkan,
    dan dapat diabaikan
  45. sampai service berhenti atau
    Anda memanggil stopForeground.
  46. Sesaat lagi Anda akan belajar lebih dalam
    tentang notifikasi, bersama Dan.
  47. Sampai disini, ingatlah foreground service
    bekerja pada prioritas yang sama
  48. seperti aktifitas foreground,
  49. membuatnya hampir mustahil
    dimatikan runtime
  50. untuk mengosongkan resources.
  51. Mungkin Anda berpikir akan banyak masalah
  52. dengan lifecycles, karena membuat
    services foreground
  53. yang berjalan lama.
  54. Begini, Aku besar di pesisir Australia,
  55. mengerti sejak kecil bahwa
    berenang melawan arus
  56. melelahkan dan sia-sia.
  57. Itu berarti akan lebih sulit
  58. bagi sistem untuk mengatur resources,
  59. yang akhirnya memberi pengalaman
    tidak enak bagi pengguna.
  60. Berenang mengikuti arus.
  61. Gunakan foreground services hanya saat
  62. dan selama dibutuhkan.
  63. Matikan semua services secepat mungkin.
  64. Penting juga diingat bahwa seperti
    aktifitas dan penerima,
  65. services bekerja di thread utama.
  66. Jadi Anda perlu memakai
    background thread atau async task
  67. untuk mengeksekusi task panjang
    yang ingin dilakukan dalam services.
  68. Untuk memudahkan, Anda dapat gunakan
    intent service class,
  69. yang mengimplementasi pola terbaik
    dan paling lazim dilakukan
  70. untuk penggunaan intent yang dieksekusi
    di dalam service.
  71. Menghasilkan antrian intent, yang masuk
    saat start service dipanggil.
  72. Semua ini lalu diproses berurutan
    di background thread,
  73. di dalam handler onHandleIntent,
  74. dalam implementasi intent service Anda.
  75. Saat antrian kosong,
    service berhenti sendiri
  76. hingga menerima intent baru, dan
    prosesnya dimulai lagi.
  77. Services adalah tool yang luar biasa dan
    penting bagi Anda
  78. memahami cara memakainya,
  79. tapi pada prakteknya kadang ada
    alternatif framework
  80. untuk menjalankan
    implementasi service Anda.
  81. Apakah itu intent service untuk
    mengeksekusi background task
  82. ataukah sync adapter yang akan
    Anda pelajari nanti.
  83. Bagus untuk melakukan sinkronisasi
    data background.