2014-06-09 16 views
13

Bir Hizmetin onTaskRemoved() yöntemi uygulanmış.
Hizmet, başlatıldığında son uygulamalar listesinden kaldırıldığında başlatılan startService() onTaskRemoved() ile başlatıldığında.
Ancak hizmet bindService() ile başlatılmışsa, onTaskRemoved() hiç çağrılmadı.

Uygulama, son uygulamalar listesinden kaldırıldığında bindService() ile başlatıldıktan sonra hızlıca kaydırıldığında Servis çağrısı nasıl yapılır?Hizmet: onTaskRemoved, bindService ile başlatılmadıysa çağrılmadı

1. bindService(): 
Activity﹕ onCreate() 
CustomService﹕ onCreate() 
CustomService﹕ onStart() 
CustomService﹕ onStartCommand() 
CustomService﹕ onBind() 
// Here we swipe to remove app from recent-apps-list 
CustomService﹕ onTrimMemory() 

2. startService(): 
ActivityA﹕ onCreate() 
CustomService﹕ onCreate() 
CustomService﹕ onStart() 
CustomService﹕ onStartCommand() 
CustomService﹕ onBind() 
// Swipe to remove app from recent-apps-list 
CustomService﹕ onTrimMemory() 
CustomService﹕ onTaskRemoved() // <===== 
CustomService﹕ onUnbind() 
+2

Önemli not: 'onTrimMemory()' Uygulama arka planda gider her denir, bunu tetiklemek için uygulama kaldırmak "tokatlamak" yok. Ana Düğmeye basarsanız bu gerçekleşir. Yani yorumunuz yanıltıcı. – ForceMagic

cevap

11

Bir servis bağlı veya başlatılabilir veya her ikisi: denilen

aşağıdaki yöntemler eğer ile başladı. Bu, dokümanları onStartCommand ve onBind uyguladığınıza göre değişir.

http://developer.android.com/guide/components/services.html

Ama servis hem sonra basitçe hizmetini başlatmak ve daha sonra kendisine bağlamak etrafında kalıp etrafı IBinder üzerinde müşterilerle konuşmak yapmak istiyorsanız.

startService(new Intent(context, CustomerService.class)); 
// Bind to the service 
bindService(new Intent(context, CustomerService.class), 
         mConnection, Context.BIND_AUTO_CREATE); 
+0

Aynı işi yapıyorum ve onStartCommand() da denir, ancak hizmet arka planda çalışmıyor. Uygulama tahrip sonra hizmet de yok .. yardımcı olabilir misiniz? –

+0

Yardım için kodunuzun biraz daha fazlasını görmem gerekiyor. Bir kod sonrası bir soru sorun. Buradaki birileri yardım edecek. – danny117

+0

Uygulama bittiğinde biraz çalışması, hizmetin durmasını ve yeniden başlatılmasını sağlar. OnCreate() ve onStartCommand() tekrar çağırır, sadece hizmetin durmasını ve yeniden başlatılmasını istemiyorum. Sadece arka planda sürekli çalışmasını istiyorum. Bunu nasıl başaracağın hakkında bir fikrin var mı? –

İlgili konular