2010-08-30 12 views
6

Así que entiendo el ciclo de vida del servicio y todo eso. Pero estoy confundido para qué es el parámetro startId?Android service parámetro startId

public int onStartCommand (Intent intent, int flags, int startId) 

me sale que se utiliza en conjunción con stopSelf(int), pero no veo cuál es el sentido o dónde se genera el startID. ¿Qué caso de uso usaría stopSelf (int)?

Respuesta

4

¿Qué caso de uso usaría stopSelf (int)?

Paso # 1: Llamar startService()

Paso # 2: Llame a startService() nuevo

Paso # 3: A petición stopSelf()

En este punto, queremos que el servicio a no ser detenido, ya que todavía hay trabajo pendiente, representado por la segunda llamada startService(). Queremos que las llamadas startService() y stopSelf() coincidan.

+0

Oh, creo que lo entiendo. Creo que estoy pensando demasiado en esto. Así que simplemente almacenaríamos el archivo startId en una variable global siempre que se ejecute onStartCommand(), y luego llamaremos a stopSelf (int) en esa variable global. Ok, tengo. Estaba tratando de pensar en poner los identificadores en una cola sincrónica o algo así, lol – Falmarri

+1

@Falmarri: "Así que simplemente almacenaríamos el archivo startId en una variable global siempre que se ejecute onStartCommand()" no, ya que habrá varios de estos. Es posible que desee examinar 'IntentService' y considerar si esa es una mejor clase base para su uso. Maneja las llamadas 'stopSelf (int)' en sí, entre otras características. – CommonsWare

+0

Hmm, entonces supongo que todavía estoy confundido. ¿Cómo vas a manejarlo tú mismo? Hay un ejemplo? No he visto ningún uso de startId en ningún ejemplo – Falmarri

Cuestiones relacionadas