studio - Cómo matar un proceso que no se ejecuta en Android
ver aplicaciones en ejecucion android 7 (1)
Como no hay código ... aquí hay algunos consejos:
1-cierras tu conexión ??? esa será la razón principal para mantener ocupado el puerto.
2- lidie con el socket de forma más segura cuando su aplicación va a pausar, detenerse o destruirse ... puede anular onpause, onstop o ondesotry ... y liberar el puerto antes de cerrar la aplicación.
3- hacer la conexión en un hilo separado e implementar un temporizador para comprobar si realmente necesitas el puerto o no (me refiero a si tu aplicación está viva o no) y en función de eso matar / dejar el hilo (conexión)
4- en el peor de los casos ... si tiene control sobre el otro lado de la conexión (servidor, dispositivo ...) trate de hacer que su solución sea más flexible, como hacer un rango de puertos para verificar primero y luego usar si están disponibles.
buena suerte
¿Alguien conoce esta situación antes? Forzo detener una aplicación en el cuadro de diálogo de configuración en un dispositivo Android. Pero cuando uso el comando ps
través de adb
, aún se muestra en la pantalla. Pero este proceso no puede ser realizado por activityManager.getRunningAppProcesses()
. Este proceso incluso existe después de desinstalar esta aplicación, sucedió al azar.
Debido a que abrí un puerto en mi aplicación usando ServerSocket
, el puerto no puede ser lanzado después de detener mi aplicación. La próxima vez que intenté abrir mi aplicación, no volvió a usar este puerto.
Estoy usando un ASUS EeePad y este problema parece que solo sucedió en ese dispositivo.
Por cierto, el proceso no puede obtenerse con herramientas de terceros, como el administrador de procesos. Pero realmente existe con un pid
cuando uso ps
través de adb shell
para listar todos los procesos.