2012-09-06 15 views
6

Geçerli odak görünümünü Hizmetim'de nasıl edinebilirim. Geçerli odak görünümü nesnesini Hizmet'te nasıl edinebilirim?

Ben Activity.getCurrentFocus gibi() ve Windows.getCurrentFocus(), bazı yöntemler bunu buldum. Ancak, bu yöntemler bir Etkinlikte kullanılır.

Bunları kullanmak istersem, mevcut odak etkinliğini almam gerekiyor. Geçerli görevi almak için WindowManager'ı kullanmayı denedim. Sadece mevcut Aktivitenin sınıf adını bu şekilde aldı. Etkinlik Nesnesi.

List<RunningAppProcessInfo> rList =activityManager.getRunningAppProcesses(); 
      RunningTaskInfo rt = rtList.get(0); 
     rt.topActivity.getClassName(); // the class name of the current Activity 

nasıl Hizmet mevcut odak görünümü elde etmek için bu yöntemleri kullanabilirsiniz? Yoksa yapmanın başka bir yolu var mı?

cevap

0

Bir hizmet arka plan çalışmasıdır, bu nedenle herhangi bir UI'ye bağlı değildir. Yapabilecekleriniz, hizmetinizi bir Etkinliğe bağlamanız ve bu etkinliğin odaklanmış görünümünü döndürmek için bu etkinlikte bazı yöntemleri (bir arabirim aracılığıyla) çağırmaktır.

Neyse, neyi başarmak istediğinizi daha iyi açıklayabilir misiniz? Normalde bir Servis UI ile şeyler yapmak için geçerli değildir, bu yüzden belki de istediğinizi yapmak için daha iyi bir yol var.