Android: El proceso ha muerto – bajos recursos?

Tengo un pequeño problema con una simple solicitud HTTP GET que he escrito y que solicitará una URL cada X minutos. Lo tenía una o dos veces al día que el proceso se detuvo en medio de la solicitud GET.

He aquí un ejemplo del registro de depuración:

12-07 16:29:22.650 V/TAG(11655): Executing HTTP Request 12-07 16:29:25.336 D/dalvikvm(11655): GC_CONCURRENT freed 366K, 50% free 2824K/5639K, external 0K/0K, paused 3ms+3ms 12-07 16:29:25.526 D/dalvikvm(11655): GC_CONCURRENT freed 450K, 52% free 2825K/5767K, external 0K/0K, paused 2ms+2ms 12-07 16:29:29.990 I/ActivityManager( 1339): Process PackageName:remote (pid 11655) has died. 12-07 16:29:29.990 I/ActivityManager( 1339): Low Memory: No more background processes. 

Ahora esto acaba de lanzar dos problemas para mí:

  • En primer lugar, el tiempo de espera que he especificado no funciona:

      HttpParams httpParameters = new BasicHttpParams(); int timeoutConnection = 10000; HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); int timeoutSocket = 10000; HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); HttpClient client=new DefaultHttpClient(httpParameters); HttpGet request=new HttpGet(url); Log.v(TAG,"Executing HTTP Request"); HttpResponse response=client.execute(request); 
  • El segundo problema es que no puedo ver una razón por la que el proceso ha muerto – es este el mensaje 'muerto' el mismo si se está matando debido a la baja memoria? Porque el tiempo de espera no se ha alcanzado aquí (client.execute está en un bloque try / catch)

Gracias por sus respuestas!

Si te entiendo correctamente, me preguntas dos cosas:

  • P1: ¿Por qué no funciona el tiempo de espera especificado?
  • Q2. ¿Por qué murió el proceso?

Comenzando con Q2, mi conjetura es que su proceso se mata porque el tiempo de espera no funcionó y su código tomó demasiado tiempo para funcionar. Como resultado, Android lo mató.

En cuanto a Q1: hice algunos experimentos y me di cuenta de que en el emulador los tiempos de espera no funcionaba en mi aplicación también. Pruebas con el emulador API7 y API8 Siempre obtengo una UnknownHostException después de unos 20 segundos, independientemente de cualquier tiempo de espera establecido. Esto va para el DefaultHttpClient , así como el HttpUrlConnection y AndroidHttpClient .

Google reveló que otras personas también han informado de problemas con el tiempo de espera:

Ninguna de las soluciones propuestas funcionó para mí, así que supongo que la única solución confiable es administrar los tiempos de espera.

  • Cómo leer el archivo de res / raw por nombre
  • Eliminar los recursos no utilizados antes del envío
  • Hay alguna manera de encontrar el identificador de recursos de dibujable
  • Color value drawable resource issue
  • ¿Eclipse no está contento con una sola carpeta?
  • ¿Hay alguna manera de utilizar los recursos android no públicos en mi aplicación?
  • Android, obtener ID de recurso de cadena?
  • Uso de la memoria de aplicaciones Android de Xamarin
  • Tamaños de imagen de Android
  • Android: ¿Cómo organizar los recursos del proyecto?
  • No se puede obtener recursos de la aplicación Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.