29 votos

¿Qué significa el botón "Forzar parada"?

Cuando voy a Settings > Applications > Manage Applications > Downloaded Veo una lista de solicitudes. Si selecciono algunas aplicaciones veo el botón "Forzar parada" activo, pero algunas aplicaciones tienen este botón atenuado.

¿Qué significa? ¿Qué ocurre si pulso este botón?

Este botón no puede significar que la aplicación se esté ejecutando, ya que las aplicaciones con este botón no aparecen en Running sección.

¿Puedo enumerar sólo las aplicaciones que tienen el Force stop ¿activar el botón y desinstalarlas?


Versión de Android: 3.2

19voto

Izzy Puntos 45544

Como dije en mi comentario a la respuesta de paco, la información que dio es en su mayoría correcta: La mayoría de las aplicaciones no salen por completo si las dejas, y ninguna aplicación debería salir si la dejas a través del botón "Home". Además, algunas aplicaciones tienen servicios en segundo plano que el usuario no puede abandonar.

Ahora bien, hay algunas situaciones en las que necesitas que se detenga una aplicación (incluyendo sus servicios en segundo plano), por ejemplo, si quieres desinstalar esa aplicación (o, en el caso de una aplicación de sistema, sus actualizaciones). Te darás cuenta de que cuando el botón "Forzar detención" está activo, el botón "Desinstalar" (o "Eliminar") está en gris -- pero este último se activa cuando detienes la aplicación mediante "Forzar detención". (Si ambos botones están en gris, se puede decir que es una aplicación del sistema, por cierto - que no se puede desinstalar).

Por cierto: Si el botón "Forzar parada" está en gris ("atenuado", como dices) significa que la aplicación no se está ejecutando, ni tiene ningún servicio en marcha (en ese momento).

1 votos

You will notice this when the "Force Stop" button is active, the "Uninstall" (or "Remove") button is grayed out ¿Puede dar un ejemplo de aplicación que tenga este comportamiento? Acabo de revisar algunas de mis aplicaciones y he encontrado que los botones "Forzar detención" y "Desinstalar" están activados. Estoy en Android 4.4.2.

1 votos

Como mi respuesta es ya de hace 2 años, Kitkat no estaba disponible entonces; este comportamiento podría haber cambiado o no afectar a todas las aplicaciones. No puedo probar con Kitkat (ningún dispositivo que ejecuta que), y fuera de mi cabeza no recuerdo que los paquetes que he visto que con, lo siento.

16voto

Andy Brudtkuhl Puntos 1714

El código detrás del Forzar la parada botón es complejo y no está documentado. Lo reproduzco textualmente y luego lo repaso pieza por pieza.

private void checkForceStop() {
    if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
        // User can't force stop device admin.
        updateForceStopButton(false);
    } else if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
        // If the app isn't explicitly stopped, then always show the
        // force stop button.
        updateForceStopButton(true);
    } else {
        Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
                Uri.fromParts("package", mAppEntry.info.packageName, null));
        intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
        intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
        intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
        getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
                Activity.RESULT_CANCELED, null, null);
    }
}

La primera if comprueba si alguna línea componente del paquete es un administrador del dispositivo (es decir, si está marcado en el Administradores de dispositivos lista en el Seguridad página del Ajustes app). Si es así, el botón es discapacitados (en gris) para que no puedas detener a los administradores de dispositivos.

Entonces, el else if comprueba si el paquete ya está se detuvo . En este caso, parado no sólo significa "sin funcionar". Hasta donde yo sé, un paquete está en el se detuvo si nunca ha ejecutado ningún componente desde él (por ejemplo, lanzándolo desde el menú), o si ha pulsado un Forzar la parada (éste o en un diálogo de "ha dejado de funcionar") y no volver a ejecutar ninguno de sus componentes. Si el paquete no ha se ha detenido, el botón es habilitado .

El else caso cubre la rara eventualidad de que una aplicación tiene ha sido detenido y no es un administrador de dispositivos. En este caso, da otros servicios del sistema la posibilidad de habilitar el botón. Por ejemplo, la aplicación podría tener una alarma establecida y pendiente, lo que haría que la aplicación se iniciara de nuevo incluso desde el estado detenido. En este caso, el botón será habilitado. Si ningún otro servicio del sistema tiene una razón para habilitar el botón, se desactivará.

Resumen

El Forzar la parada se activa si el paquete no es un administrador de dispositivos y o bien no has forzado la parada de esta aplicación o la has forzado pero un servicio del sistema cree que la va a volver a ejecutar.

Si la aplicación se está ejecutando (y no es un administrador del dispositivo), el Forzar la parada estará definitivamente habilitado, pero que el botón esté habilitado no significa que la aplicación se esté ejecutando.

1 votos

Es genial que nos muestre el código que determina si el botón se muestra o no. Para un desarrollador como yo esa es la respuesta perfecta. Pero realmente, esto es sólo la mitad de la respuesta. No muestras lo que ocurre cuando realmente se pulsa el botón.

2voto

Nirmik Puntos 288

Android mantiene 4 tipos de aplicaciones en su memoria. No recuerdo todas pero corriendo y fondo en caché son 2 de ellos...(se puede acceder al fondo de la caché haciendo clic en el botón del menú de hardware cuando se está en el corriendo y seleccionando la opción emergente)

Así que aunque no se vea en el corriendo procesos, no está del todo muerto.

La mayoría de las veces será en el fondo en caché procesos.

Además, en lo que respecta a los gestores de tareas, no se aconseja su uso, ya que Android ha sido programado para gestionar las aplicaciones de forma eficiente. Los eliminadores de aplicaciones/tareas en realidad drenan la batería, ya que después de que el eliminador mata las aplicaciones, de acuerdo con el algoritmo que sigue Android, éstas se iniciarán de nuevo (y las aplicaciones ocupan bastante más memoria en el inicio que en el estado ideal), por lo que se convierte en un ciclo y drena la batería.

para que el botón de cierre forzado esté activo en principalmente procesos en ejecución y en caché y puede existir en muy pocas aplicaciones que residan en los otros dos tipos de procesos.

¡en otras aplicaciones su greyd hacia fuera!

1 votos

Son más de 4 tipos (ver Comprender los ciclos de vida de las aplicaciones y actividades de Android para una explicación más detallada). Pero esas clases no tienen nada que ver con el botón de "forzar la parada", al menos no directamente (ver mi respuesta (un botón de "forzar detención" activo simplemente significa que la propia aplicación o uno de sus servicios registrados se está ejecutando).

-2voto

pacoespinoza Puntos 105

Este botón se activa para las aplicaciones que se están ejecutando o se están ejecutando desde la última vez que se inició el dispositivo.

Android no mata las aplicaciones totalmente cuando se sale de ella, este botón es para cerrar completamente la aplicación y eliminarla de la pila (aplicaciones en ejecución), también este botón libera la memoria utilizada por la aplicación.

No hay manera de listar las aplicaciones que se ejecutan, también las aplicaciones que se ejecutan en segundo plano tienen este botón.

Hay aplicaciones asesinas gratuitas en la Play Store, para gestionar la memoria de tu dispositivo de forma automática.

3 votos

Aunque la información básica es correcta: mejor quitar la parte de los "eliminadores automáticos". Puede que haya habido algún momento en el que fueran necesarios (antes de Android 2.x), pero son absolutamente contraproducentes y, en su mayoría, tienen un efecto negativo en la duración de la batería.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X