2010-10-06 29 views
18

Desidero scrivere un servizio per la piattaforma Android che viene notificato quando cambia l'attività in primo piano corrente. Fondamentalmente il servizio dovrebbe svolgere alcune attività solo quando l'attività principale cambia. C'è un modo per iscriversi e ricevere una notifica quando si verifica questo tipo di evento? Oppure non c'è alcuna possibilità e il servizio dovrebbe sondare di volta in volta l'elenco delle attività in esecuzione e verificare qual è l'attività in primo piano? Soluzione non preferibile ...Come essere avvisati quando cambia l'attività in primo piano (in alto) (applicazione)

+0

Su quale piattaforma sono la vostra cercando di scrivere il vostro servizio? – Guillaume

+0

Piattaforma Android 2.1 – Alex

+2

Hai mai trovato una soluzione per questo? Sto cercando di fare qualcosa di simile. – harbinja

risposta

4

mi risulta, ci sono due modi fare quello.

  1. avviare un servizio e monitorare la pila di attività, si potrebbe controllare here
  2. Utilizzare un servizio di accessibilità, si potrebbe trovare una soluzione here
+0

Si noti che la tecnica collegata per il polling per l'attività corrente non funziona in Android 5+. – Sam

+0

@ Sam Quindi come funziona l'applicazione che protegge l'applicazione selezionata? Come rilevano quando arriva un'applicazione e in primo piano? Grazie –

+0

@Astrount, non so cosa gli sviluppatori usano in questi giorni, ma l'ultima volta che ho controllato, l'opzione 2 in questa risposta funziona ancora su Android 5. – Sam

1

È necessario associare ogni attività al servizio e si dovrà sapere quale attività è in esecuzione.

provare questo:

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

questo metodo darà informazioni del nome del pacchetto di attività che è in primo piano ..............

+1

Beh, questa non è una soluzione, forse mi sono espresso male, voglio che il servizio sia informato su quale applicazione è in esecuzione in primo piano (potrebbe essere una qualsiasi delle applicazioni installate) e confrontare con un elenco predefinito di applicazioni e se è sulla lista per fare un po 'di lavoro. – Alex

+0

Ah ok, hai scritto Activity così ho capito che era solo un'applicazione. Io davvero non so come fare ciò che vuoi scusare – fedj

+0

Qualcun altro :)? – Alex

Problemi correlati