2012-09-06 2 views
6

Wie bekomme ich die aktuelle Fokusansicht in meinem Service?Wie bekomme ich das aktuelle Fokusansichtsobjekt in Service?

Ich habe einige Methoden dafür gefunden, wie Activity.getCurrentFocus() und Windows.getCurrentFocus(). Diese Methoden werden jedoch in einer Aktivität verwendet.

Wenn ich diese verwenden möchte, muss ich die aktuelle Fokusaktivität erhalten. Ich habe versucht, WindowManager zu verwenden, um aktuelle Aufgabe zu erhalten. Es wurde nur der Klassenname der aktuellen Aktivität auf diese Weise erhalten. nicht Aktivitätsobjekt.

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

Wie kann ich diese Methoden verwende die aktuelle Fokus-Ansicht in einem Dienst zu bekommen? Oder gibt es einen anderen Weg zu ?

Antwort

0

Ein Service ist eine Hintergrundarbeit, ist also nicht an irgendeine Benutzeroberfläche gebunden. Sie können Ihren Dienst an eine Aktivität binden und eine Methode (über eine Schnittstelle) für diese Aktivität aufrufen, um die fokussierte Ansicht dieser Aktivität zurückzugeben.

Wie auch immer, können Sie besser erklären, was Sie erreichen möchten? normalerweise gilt ein Service nicht für Dinge mit UI, also gibt es vielleicht einen besseren Weg, um das zu tun, was Sie wollen.