Porque tiene permisos y receptores que le permiten ejecutarse en segundo plano. Vamos a desglosarlos:
- BOOT_COMPLETED – este receptor enviará broadcast a las apps que lo soliciten. Básicamente significa que una app puede iniciarse en el arranque (en segundo plano) sin que tú la abras.
- CONNECTIVITY_CHANGE – este receptor volverá a enviar broadcast a las apps que lo soliciten. De esta manera, las apps que lo soliciten sabrán que el estado de la red ha cambiado. Esta también puede ser la razón por la que muchos smartphones antiguos de gama baja se retrasan cuando se enciende la red. Combinado con la opción de auto-sincronización, este receptor puede «matar» tu teléfono, dependiendo de las apps que tengas. Por lo general, las aplicaciones sociales como WeChat hacen un uso intensivo de este receptor.
- WAKE_LOCK – este permiso permite que una aplicación mantenga el teléfono en un estado despierto, evitando que pase al estado de «sueño profundo». Las aplicaciones sociales ofensivas probablemente utilizarán este permiso de forma poco ética (recogiendo diversos datos que no te interesan, etc.), lo que provocará el agotamiento de la batería. Las aplicaciones mal escritas también pueden hacer un mal uso de este permiso sin ninguna razón real. Además, el uso inusual de este permiso puede activar las notificaciones del sistema Android sobre el agotamiento de la batería.
¿Qué hace WeChat? Bueno, ya que nunca he utilizado WeChat, mi mejor suposición es que ejecuta un servicio en segundo plano para asegurar que las notificaciones o algún tipo de su funcionalidad es fiable incluso en los teléfonos con o sin Google Play Services.
Una opción es explorar la configuración de la aplicación y desactivar las características que están drenando la batería o causando wakelocks. Las notificaciones son una de ellas; desactívalas o redúcelas si es posible. Todo tipo de sonidos provocan un wakelock; deshabilita o reduce los sonidos cosméticos, especialmente los que se reproducen con bastante frecuencia.
Por último, puedes probar a borrar la caché y/o los datos de la app para empezar de cero. Podría arreglar los errores debidos a la caché antigua/incorrecta. No te olvides de mantener tus aplicaciones actualizadas también.