Android API 28 Hizmet Ön Planı Yok Etme
Android API 28’de, ön planda çalışan bir hizmeti durdurmak için yeni bir yöntem olan destroy()
yöntemi eklendi. Bu yöntem, stopSelf()
ve stopService()
yöntemlerinin yerini alır.
destroy()
yöntemi, hizmeti hemen durdurur ve hizmete bağlı tüm istemcileri bilgilendirir. Bu, hizmeti durdurmanın en hızlı ve en güvenli yoludur. Ancak, destroy()
yöntemi, hizmetteki tüm işlerin tamamlanmasını beklemez. Bu nedenle, hizmette önemli işler yapıyorsanız, bu işlerin tamamlanmasını beklemek için stopSelf()
veya stopService()
yöntemlerini kullanmalısınız.
destroy()
yönteminin kullanımı şu şekildedir:
“`java
@Override
public void onDestroy() {
super.onDestroy();
// Hizmetteki tüm işleri durdurun.
stopAllTasks();
// Hizmete bağlı tüm istemcileri bilgilendirin.
notifyClients();
}
“`
destroy()
yöntemi, Service
sınıfının bir parçasıdır. Bu nedenle, ön planda çalışan bir hizmet oluşturmak için Service
sınıfını miras almanız gerekir.
destroy()
Yönteminin Avantajları
destroy()
yöntemi, stopSelf()
ve stopService()
yöntemlerine göre bir takım avantajlara sahiptir. Bu avantajlar şunlardır:
- Daha hızlı:
destroy()
yöntemi, hizmeti hemen durdurur. Bu,stopSelf()
vestopService()
yöntemlerinden daha hızlıdır. - Daha güvenli:
destroy()
yöntemi, hizmete bağlı tüm istemcileri bilgilendirir. Bu, hizmeti durdurduktan sonra istemcilerin hizmete erişmeye çalışmasını önler. - Daha kolay:
destroy()
yöntemi,stopSelf()
vestopService()
yöntemlerinden daha kolay kullanılır.
destroy()
Yönteminin Dezavantajları
destroy()
yöntemi, stopSelf()
ve stopService()
yöntemlerine göre bir takım dezavantajlara sahiptir. Bu dezavantajlar şunlardır:
- Hizmetteki işleri tamamlamaz:
destroy()
yöntemi, hizmetteki tüm işlerin tamamlanmasını beklemez. Bu nedenle, hizmette önemli işler yapıyorsanız, bu işlerin tamamlanmasını beklemek içinstopSelf()
veyastopService()
yöntemlerini kullanmalısınız. - Hizmete bağlı istemcileri bilgilendirir:
destroy()
yöntemi, hizmete bağlı tüm istemcileri bilgilendirir. Bu, hizmeti durdurduktan sonra istemcilerin hizmete erişmeye çalışmasını önler. Ancak, bu durum, istemcilerin hizmete erişmeye çalıştığında hata almasına neden olabilir.
Sonuç
destroy()
yöntemi, Android API 28’de eklenen yeni bir yöntemdir. Bu yöntem, ön planda çalışan bir hizmeti durdurmak için kullanılır. destroy()
yöntemi, stopSelf()
ve stopService()
yöntemlerinden daha hızlı, daha güvenli ve daha kolaydır. Ancak, destroy()
yöntemi, hizmetteki işleri tamamlamaz ve hizmete bağlı istemcileri bilgilendirir. Bu nedenle, hizmette önemli işler yapıyorsanız, bu işlerin tamamlanmasını beklemek için stopSelf()
veya stopService()
yöntemlerini kullanmalısınız.
Faydalı Siteler
- Android Developers: Services
- Android Developers: Service Lifecycle
- Android Developers: Stopping a Service