Intuitivamente entender las tareas de Android

Tasks and Back Stack es el recurso definitivo para comprender el mecanismo que implica las tareas y su interacción con el botón Atrás. En un primer párrafo:

Una tarea es una colección de actividades con las que los usuarios interactúan cuando realizan un determinado trabajo. Las actividades se organizan en una pila (la "pila trasera"), en el orden en que se abre cada actividad.

Las tareas se explican a continuación en términos de la pantalla de inicio y cómo se inicia los procesos. Esto tiene sentido. Tengo curiosidad, sin embargo: ¿Qué debería determinar el uso de múltiples tareas en aplicaciones de "usuario"?

Estoy interesado en una comprensión intuitiva o heurística que guía el uso de la tarea en lugar de simplemente intentar lograr órdenes específicas de actividades en la pila trasera.

Una tarea es un grupo de componentes que trabajan coherentemente juntos para cumplir un propósito para el usuario (no necesariamente un propósito muy específico, pero un propósito no obstante). Es lo que el usuario ve como una aplicación.

Existe un reproductor de música que permite al usuario administrar y reproducir canciones. Puede incluir varias actividades que muestren metadatos de álbum / artista / canción, control de reproducción, listas de reproducción, etc. También puede incluir servicios que implementan la reproducción y que buscan nuevas canciones. El usuario no sabe qué es una actividad y un servicio; Él o ella sólo sabe que esta serie de pantallas le permite administrar y reproducir canciones.

Las actividades de una tarea no necesitan pertenecer a la misma 'aplicación' desde el punto de vista del desarrollo. Si la tarea del reproductor de música permite a los usuarios vincular una imagen a una canción, puede iniciar una actividad de galería de imágenes o la actividad de la cámara. Dado que la nueva actividad sigue trabajando hacia el propósito de administrar canciones, sigue siendo parte de la misma tarea.

Por otro lado, si el usuario rompe totalmente con el propósito de la tarea, podría ser el momento de iniciar una tarea diferente. Por ejemplo, si inicia un navegador web para ver el sitio web del artista, el usuario ahora está haciendo algo diferente. El usuario probablemente no asocie navegación web con la gestión y reproducción de canciones, por lo que probablemente debería ser una tarea diferente.

Creo que una tarea en ese contexto dado es una especie de flujo de trabajo. Tome correo electrónico. Escribir un nuevo correo electrónico puede consistir en rellenar primero los destinatarios y, a continuación, en la siguiente actividad, seleccionar destinatarios y hacer clic en enviar finalmente envía el correo electrónico desactivado. Otra tarea podría ser la selección de múltiples correos electrónicos y, a continuación, eliminar todo de una sola vez.

En la práctica, lo que a menudo se encuentra es un AsyncTask que básicamente está haciendo un trabajo en segundo plano que de otro modo bloquearía el hilo de interfaz de usuario y haría que la aplicación no responda.

  • MVC en Android: ¿Aplicación o servicio para actualizaciones asíncronas?
  • Cómo agregar mediante programación varios LinearLayouts en una vista y, a continuación, agregar a ViewFlipper?
  • Undefined complexType 'java.lang.Object' se utiliza como base para la extensión de tipo complejo
  • RecyclerView Varias vistas de disposición en una clase de adaptador
  • Android onLayout () y AsyncTask () no funcionan juntos
  • GetMeasuredWidth devuelve un valor totalmente erróneo
  • Android ScrollView establece la altura del contenido visualizado
  • Android Spannablecontent con esquinas redondeadas
  • Haga mi estilo del botón como el botón del AlertDialog Estilo
  • ¿Cuál es el mejor diseño de paquetes?
  • Vista personalizada para ActionBar.Tab no se muestra correctamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.