Autore Topic: Comunicare da Service ad Activity  (Letto 908 volte)

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
Comunicare da Service ad Activity
« il: 13 Gennaio 2011, 17:16:32 CET »
0
Salve,
volevo sapere come potevo chiudere la mia Activity da un Service, usando gli Intent.

Grazie

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Comunicare da Service ad Activity
« Risposta #1 il: 13 Gennaio 2011, 17:49:02 CET »
0
Dai un occhiata a questo snippet

Aggiornare UI tramite BroadcastReceiver - Android Developers Italia

forse puoi sfruttarlo per chiamare finish() al posto di modificare la UI

Li uso un timertask, tu farai dal servizio

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
Re:Comunicare da Service ad Activity
« Risposta #2 il: 13 Gennaio 2011, 18:15:06 CET »
0
Grazie, mi e' stato d'aiuto per capire come fare, ma non sembra funzionare.

Nella mia Activity, faccio
Codice (Java): [Seleziona]
private final BroadcastReceiver mIntentReceiver = new  BroadcastReceiver(){
                @Override
                public void onReceive(Context arg0, Intent intent) {
                        Log.e(TAG, "INTENT RECEIVED!");
                        progressDialog.dismiss();
                        finish();
                }
        };

ma l'activity non si chiude...  perche???

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Comunicare da Service ad Activity
« Risposta #3 il: 13 Gennaio 2011, 18:30:32 CET »
0
Log.e(TAG, "INTENT RECEIVED!");

Lo vedi?

Lo fai il broadcast dell'intent?

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
Re:Comunicare da Service ad Activity
« Risposta #4 il: 13 Gennaio 2011, 18:40:10 CET »
0
faccio cosi:
nell'activity
Codice (Java): [Seleziona]
        public static final String CUSTOM_INTENT = "cloudsensor.csams.intent.STOP_NOTIFICATION";
       
        private final BroadcastReceiver mIntentReceiver = new  BroadcastReceiver(){
                @Override
                public void onReceive(Context ctx, Intent intent) {
                        Log.e(TAG, "INTENT RECEIVED!");
                        progressDialog.dismiss();
                        finish();
                }
        };

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.tab1);
               
                registerReceiver(mIntentReceiver, new IntentFilter(CUSTOM_INTENT));
                Log.e(TAG, "REGISTER BROADCAST RECEIVER");
[...]

nel service:
Codice (Java): [Seleziona]
public void sendIntentToStartStop(){
                Intent comunicationIntent = new Intent(CUSTOM_INTENT);
                sendBroadcast(comunicationIntent);
                Log.e(TAG, "SEND INTENT TO StartStop");
        }

ma non ricevo mai l'intent!!  :'(