2011-08-16 15 views
6

Estoy en necesidad desesperada de una solución a este problema, por alguna razón en otro dispositivo que he probado en mi aplicación bluetooth, cuando cierro la aplicación (OnDestroy()) y volver a entrar es que las conexiones bluetooth fallan. La única solución para esto actualmente es apagar y encender el bluetooth para el dispositivo.aplicación Android no liberar Bluetooth correctamente en la salida

El código que uso es más o menos la muestra bluetoothchat para androide. Creo conexiones de 2 bt a un dispositivo previamente seleccionado.

entonces se comunican hacia atrás y adelante con estas tomas utilizando InputStream y flujo de salida.

Cuando mi aplicación se destruye - cierro entrada y tomas de salida y Bluetooth, que incluso entonces matar el proceso (que se encuentra en algún código aquí), pero cuando voy de nuevo en la aplicación falla la conexión.

¿Alguien puede ofrecer ninguna ayuda de lo que he dicho hasta ahora? Mi código es bastante en este momento, así que no sé qué pegar, pero la conexión bt básicamente utiliza las clases de la muestra y luego pasa estos sockets creados a mis otras clases.

Gracias de antemano

+0

¿Puede agregar algunos snipets de código a su pregunta? Especialmente lo que estás haciendo en Destroy() y cómo estás inicializando bluetooth en onCreate(). ¿Quizás deberías hacerlo en onResume()/onPause()? – grzaks

+0

Publique la salida de logcat de la conexión fallida. –

Respuesta

3

La mejor manera de utilizar OnDestroy está en modo siguiente, la esperanza que está haciendo algo similar.

@Override 
protected void onDestroy() { 
    if (localBT != null) { 
    localBT.close(); 
    } 
    super.onDestroy(); 
} 
0

Como se mencionó Gaks, su problema puede implicar onResume()/onPause(). ¿Estás absolutamente seguro de que se llama a tu limpieza onDestroy (como en, estás registrando y/o mirando el logcat)?

Si su aplicación no es persistente, puede ser que sea mejor que hacer la limpieza cuando la aplicación ya no está en uso (onPause).

También, si tiene dos conexiones ¿hay algo especial que usted necesita hacer para cerrar los dos? Solo adivinando eso.

Cuestiones relacionadas