utilizar setresult result_ok como activity android multithreading asynchronous android-activity synchronous

android - setresult - ¿Alguien puede explicar por qué asincrónicos son startActivity(intent) y startActivityForResult(intent)?



setresult android (2)

Si un hilo asíncrono es un hilo que funciona por separado del hilo principal y no interfiere con el hilo principal ...

¿Una nueva Activity no ocupa el hilo principal después de que se haya iniciado mediante startActivity(intent) ?

La mayoría de lo que he leído sobre esto dice que ambos son asíncronos, sin embargo, hay algunas respuestas conflictivas y la gente que dice esto no da argumentos convincentes.

Entonces, si alguien que tenga esto claro en su cabeza y pueda explicar por qué son síncronos / asíncronos, ¡sería un hombre muy agradecido!

Aclamaciones

EDIT: Así que la respuesta que he derivado de estas dos buenas personas y algunas cosas en línea ...

La incorporación de Actividades en la combinación de síncrono / asíncrono puede hacer que se produzca una carga de caballos. Pero sigue refiriéndose a los principios de ...

Synchronous métodos / comandos Synchronous deben completarse antes de que la pila de llamadas pueda continuar.

Asynchronous métodos / comandos Asynchronous (comúnmente hechos en un hilo / AsyncTask) continúan en paralelo permitiendo que el hilo principal de ejecución continúe. (Puede volver en su propio tiempo).

Los startActivity(intent) y startActivityForResult(intent) son asíncronos, ya que no bloquean y permiten que el hilo de ejecución continúe mientras realizan su tarea correspondiente.


Cuando startActivityForResult , sigue realizando una llamada asíncrona. La actividad de la persona que llama se suspende y la nueva se inicia en otro proceso (si se ejecuta con un usuario diferente).

Pero cuando la actividad llamada termina estableciendo un resultado , su actividad se reanuda y obtiene onActivityResult llamado como una devolución de llamada que contiene el resultado.


startActivity(intent) y startActivityForResult(intent) son asíncronos en el sentido de que estos métodos regresan inmediatamente sin iniciar una Actividad. En realidad, programan una Actividad para que comience solo después de que finalicen los eventos del ciclo de vida de la Actividad actual.

La conclusión es, si tiene algo, que lleva algún tiempo terminar, en el método onPause() de la primera actividad, la nueva Activity tardará en iniciarse.