2010-10-06 15 views
18

Chcę napisać usługę dla platformy Android, która jest powiadamiana o zmianie bieżącego czynu pierwszego planu. Zasadniczo usługa powinna wykonywać niektóre zadania tylko wtedy, gdy zmienia się najwyższa aktywność. Czy można subskrybować i otrzymywać powiadomienia o takich zdarzeniach? Lub nie ma takiej możliwości, a usługa powinna od czasu do czasu odpytywać listę uruchomionych działań i sprawdzić, co jest aktywnością pierwszego planu? Niedogodniejsze rozwiązanie ...Jak zostać powiadomionym, gdy zmiana na pierwszym planie (na górze)

+0

Na jakie platformy są próbujesz napisać swoje usługi? – Guillaume

+0

Android 2.1 platforma – Alex

+2

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Próbuję zrobić coś podobnego. – harbinja

Odpowiedz

4

AFAIK istnieją dwa sposoby aby to zrobić.

  1. Rozpocznij obsługę i monitorowanie aktywności stos, można sprawdzić to here
  2. Użyj usługa ułatwień dostępu, można znaleźć rozwiązanie here
+0

Należy zauważyć, że połączona technika pollingu dla bieżącej aktywności nie działa w systemie Android 5+. – Sam

+0

@Sam Następnie, jak działa aplikacja chroniąca wybraną aplikację? W jaki sposób wykrywają, kiedy aplikacja przychodzi i na pierwszym planie? Dziękuję –

+0

@Astrount, nie wiem, jacy deweloperzy używają tych dni, ale kiedy ostatnio sprawdzałem, opcja 2 w tej odpowiedzi nadal działa w systemie Android 5. – Sam

1

Powinieneś związać każde działanie z usługą, a będziesz wiedzieć, która aktywność jest uruchomiona.

spróbuj tego:

List runningTaskInfos=actvityManager.getRunningTasks(1).get(i).topActivity .getPackageName(); 

metoda ta daje informacje o aktywności za nazwą pakietu, który jest w planie ..............

+1

To nie jest rozwiązanie, może wyraziłem się źle, chcę, aby usługa została powiadomiona, która aplikacja działa na pierwszym planie (może to być jedna z zainstalowanych aplikacji) i porównać z wcześniej zdefiniowaną listą aplikacji i jest na liście, żeby wykonać trochę pracy. – Alex

+0

Ach, dobrze napisałeś, więc zrozumiałem, że to tylko jedna aplikacja. Naprawdę nie wiem, jak zrobić to, co chcesz zrobić, przepraszam – fedj

+0

Ktoś jeszcze :)? – Alex

Powiązane problemy