Utilizza 0 o BIND_AUTO_CREATE per la bandiera di bindService

Facendo riferimento a bindService (servizio Intent, conn Connection ServiceConnection, flags int)

Posso sapere, quando dobbiamo utilizzare 0 per le flags e quando dovremmo usare BIND_AUTO_CREATE per le flags ? La documentazione non spiega quale sia il significato di 0 per le bandiere.

  • Come creare un UI come il nuovo mercato o Google Plus?
  • Perché l'interface di Facebook di Android non funziona con i frammenti?
  • SelectableItemBackground come elemento nell'elenco dei livelli
  • Come faccio a specificare e aggiungere una printingnte personalizzata in un'applicazione Android?
  • Edittext ridimensiona in modalità orizzontale quando appare softkeyboard
  • Recuperare in reactjs il modo di lavoro nativo con ssl su android
  • Esempio per l'utilizzo di 0 come flags

     // Start auto complete service. autoCompleteServiceIntent = new Intent(AutoCompleteService.class.getName()); startService(autoCompleteServiceIntent); bindService(autoCompleteServiceIntent, serviceConnection, 0); 

    Esempio per utilizzare BIND_AUTO_CREATE come flags

     mContext.bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE); 

    2 Solutions collect form web for “Utilizza 0 o BIND_AUTO_CREATE per la bandiera di bindService”

    Per il metodo bindService(Intent, ServiceConnection, flag) se flag= Context.BIND_AUTO_CREATE viene utilizzato, esso legherà il service e avvia il servizio, ma se "0" viene utilizzato, il metodo restituirà true e non avvia il servizio fino a una chiamata come startService(Intent) viene fatto per avviare il service . Uno degli usi comuni di "0" è nel caso in cui un'attività per connettersi a un servizio locale se tale servizio è in esecuzione, altrimenti è ansible avviare il servizio.

    BIND_AUTO_CREATE , utilizza BIND_AUTO_CREATE se si sta BIND_AUTO_CREATE a un servizio la cui durata è valida solo a condizione che i client siano legati ad esso. Questo perchè nel momento in cui tutti i clienti non hanno alcun legame, scenderanno.

    Non utilizzare BIND_AUTO_CREATE – o forse dovrei riformulare: non è ansible usare BIND_AUTO_CREATE se sei veramente legato a un servizio per interrogarlo o controllarlo, ed è ragionevole che questo servizio continui a vivere, è fatto. In questi casi, il legame è quello di stabilire una connessione e in alcuni casi il ciclo di vita del servizio deve essere gestito con startService() e stopService() (o stopSelf() ).

    Un esempio comune di quest'ultimo caso è chiaramente descritto da Google nei documenti sui servizi associati :

    "… Ad esempio, un lettore musicale potrebbe rivelarsi utile per consentire al suo servizio di eseguire a tempo indefinito e fornire anche un legame. In questo modo un'attività può avviare il servizio per riprodurre musica e la musica continua a suonare anche se l'utente esce l'applicazione, quindi, quando l'utente torna all'applicazione, l'attività può legarsi al servizio per riprendere il controllo della riproduzione ".

    Nel complesso, direi che l'uso della bandiera distingue veramente due tipi molto diversi di casi d'uso piuttosto che versioni fine-tuned della stessa cosa.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.