Autore Topic: Help, killare una activity da un broadcast è possibile?  (Letto 666 volte)

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Help, killare una activity da un broadcast è possibile?
« il: 11 Maggio 2012, 01:14:03 CEST »
0
Salve, ho un dubbio che mi assilla e che mi ha attualmente bloccato, in breve sto cercando di fare un'applicazione composta da un activity principale, da un'activity che richiamo tramite startactivityonresult e da un broadcast (che apre l'activity principale). Il problema sta nel fatto che ogni volta che viene richiamata l'activity principale da parte del broadcast queste activity mi si accavallano e premendo ad esempio il tasto "indietro" invece di chiudere l'applicazione mi ritorna all'inverso a ciascuna activity aperta fino alla prima; dato che questa cosa mi crea anche un altro problema la mia intenzione sarebbe quella di chiudere l'eventuale activity principale aperta e sostituirla con una nuova.
Ho cercato un po' in rete se fosse possibile chiudere un'activity da un broadcast in modo che se l'activity principale fosse aperta, il broadcast potrebbe eseguire un controllo e prima di aprirne una nuova chiuderebbe quella aperta, ma con scarsi risultati.
Se ciò non fosse possibile conoscete delle strategie per compiere questa operazione?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Help, killare una activity da un broadcast è possibile?
« Risposta #1 il: 11 Maggio 2012, 08:01:47 CEST »
+1
Quando fai partire l'activity usa questa flag:

Codice (Java): [Seleziona]
        Intent i = new Intent(this,TuaActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);

Offline qato

  • Nuovo arrivato
  • *
  • Post: 46
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
Re:Help, killare una activity da un broadcast è possibile?
« Risposta #2 il: 11 Maggio 2012, 08:26:45 CEST »
0
Ti conviene dare un'occhiata qui
Forse, nel tuo caso, basta cambiare la taskAffinity
Codice: [Seleziona]
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);probabilmente devi anche impostare nel manifest.xml
Codice: [Seleziona]
<activity ... android:taskAffinity=":Other">...</activity>
PS - Postato insieme a Ricky :) Si, probabilmente FLAG_ACTIVITY_CLEAR_TOP è meglio

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Re:Help, killare una activity da un broadcast è possibile?
« Risposta #3 il: 12 Maggio 2012, 00:17:07 CEST »
0
Grazie per le dritte, ho messo un thanks a Ricky perchè la soluzione era proprio quella dato che nel broadcast prima di far partire l'activity era già presente intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);.
Ho fatto comunque delle prove per verificare se c'era differenza tra addFlags e setFlags (come suggerito da qato) e aggiungendo quella riga al manifest ma ho notato che è, quantomeno apparentemente, ininfluente e che tutto si è risolto con intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); dopo ..FLAG_ACTIVITY_NEW_TASK e prima di startactivity.