Autore Topic: AlertDialog da un Service  (Letto 567 volte)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
AlertDialog da un Service
« il: 15 Dicembre 2011, 11:48:08 CET »
0
Salve gente,
mi sapreste dire come (sempre che sia possibile..) chiamare un alertDialog da un Service in background dato che le Alert son legate all'activity? Mi serve perchè nell'applicazione vorrei che mentre faccio "altro" un service mi controlla dei cambiamenti al database e in caso di cambiamenti particolari notificare un AlertDialog piuttosto che solo una notifica sulla status bar. Preferisco usare un'AlertDialog appunto perchè voglio che l'utente sia obbligato a vedere l'"allarme" a tutto schermo.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:AlertDialog da un Service
« Risposta #1 il: 15 Dicembre 2011, 11:57:45 CET »
+1
Premesso che ti consiglio di usare una notifica per ovvi motivi di user experience (meno invasiva, consistente con il sistema, ecc ecc), una soluzione potrebbe essere di creare una Activity e dargli il tema di un dialog.

Codice (XML): [Seleziona]
<activity android:theme="@android:style/Theme.Dialog" android:name=".TuaActivity"></activity>

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:AlertDialog da un Service
« Risposta #2 il: 15 Dicembre 2011, 13:44:23 CET »
0
Immaginavo la tua risposta relativa all'invasività del tipo di gestione, però se dovessi gestire un allarme importante l'unica alternativa sarebbe quindi come dici tu un'Activity con Tema Dialog? L'alternativa non potrebbe essere spostare solo il controllo del possibile allarme sull'Activity principale (una specie di brackground nell'activity) , e tutto ciò che comunque dialoga con il DB ma non interagisce direttamente con l'utente lasciarlo nel Service?
Anche se però mi viene il dubbio che facendo così dovrei creare 1 thread x l'activity e 1 per il service per non mandare in conflitto i dati (in caso dovessero alterare per qualche funzione particolare le stesse tabelle).

Che ne dici?
« Ultima modifica: 15 Dicembre 2011, 13:45:56 CET da stefanoadsl »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:AlertDialog da un Service
« Risposta #3 il: 15 Dicembre 2011, 13:56:06 CET »
0
Immaginavo la tua risposta relativa all'invasività del tipo di gestione, però se dovessi gestire un allarme importante l'unica alternativa sarebbe quindi come dici tu un'Activity con Tema Dialog?

Dipende dalla situazione in cui questo allarme può scatenarsi. Ad esempio se tu fai delle operazioni in background che potrebbero durare parecchio tempo e a un certo punto vuoi mostrare il risultato dell'operazione (o eventuali errori) io userei un ordered broadcast in modo tale da:

1) se l'utente ha ancora aperto la tua activity mostri il risultato direttamente dentro l'activity
2) se 'utente è uscito mostri una notifica (tieni conto che puoi far attivare la vibrazione o far riprodurre un suono in modo da richiamare l'attenzione).

Citazione
L'alternativa non potrebbe essere spostare solo il controllo del possibile allarme sull'Activity principale (una specie di brackground nell'activity) , e tutto ciò che comunque dialoga con il DB ma non interagisce direttamente con l'utente lasciarlo nel Service?

beh questo è quello che dovrebbe stare in un Service: le operazioni che vengono eseguite senza interazione con l'utente. L'interazione deve essere affidata ad una Activity che appunto pilota il Service.

Citazione
Anche se però mi viene il dubbio che facendo così dovrei creare 1 thread x l'activity e 1 per il service per non mandare in conflitto i dati (in caso dovessero alterare per qualche funzione particolare le stesse tabelle).

Se pensi che potrebbero verificarsi situazioni di scritture concorrenti allora è opportuno gestire anche la concorrenza.

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:AlertDialog da un Service
« Risposta #4 il: 20 Dicembre 2011, 17:32:17 CET »
0
Se hai presente l'applicazione Viber volevo fare una cosa del genere come quando arriva un messaggio. Viber ha un Service che controlla ovviamente le chiamate e i messaggi in entrata e quando appunto arriva un mex oltre alla notifica visualizzata nella NotificationBar viene visualizzato anche un Dialog per la risposta veloce al messaggio come ad esempio questo

Come si fa?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:AlertDialog da un Service
« Risposta #5 il: 20 Dicembre 2011, 17:36:25 CET »
0
Con quanto ti ho scritto nella prima risposta.

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:AlertDialog da un Service
« Risposta #6 il: 20 Dicembre 2011, 17:45:44 CET »
0
Ok scusa, mi sembrava strano che bastasse quello per fare una cosa simile  :-) ti ringrazio di nuovo
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)