Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Implementación de un bucle while en android

No puedo entender la implementación de un bucle while en android.

Siempre que implemento un bucle while dentro del onCreate() , (código mostrado abajo)

 public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); TextView=(TextView)findViewById(R.id.TextView); while (testByte == 0) updateAuto(); } 

Nada arranca, y el programa entra en un estado "colgante" después de un tiempo y no puedo entender por qué. Testbyte es el siguiente:

 byte testByte == 0; 

Y updateAuto() se supone que actualizar el código por 1 segundo y mostrar dentro de la parte textView. He estado usando setText dentro de updateAuto () como se muestra a continuación y todo funciona bien, pero una vez que implementar el bucle while todo lo que veo es una pantalla en negro y luego una opción para cerrar la fuerza después de unos segundos debido a que "no responde" .

 TextView.setText(updateWords); 

Lo he cambiado a un formato de botón (lo que significa que tengo que hacer clic en el botón para actualizar por sí mismo por ahora), pero quiero que se actualice en lugar de hacer clic manualmente en él.

¿Estoy implementando el bucle while de una manera incorrecta?

También he intentado llamar el lazo while en una función separada pero todavía me da la pantalla negra de la nada.

He estado leyendo algo sobre un servicio de Handler … ¿qué hace? ¿Puede el servicio Handler actualizar mi TextView de una manera más segura o eficiente en la memoria?

Muchas gracias si alguien diera algunos consejos sobre lo que debo hacer en esto.

    One Solution collect form web for “Implementación de un bucle while en android”

    Prepárate. Y tratar de seguir de cerca, esto será invaluable como un dev.

    Mientras que los bucles realmente sólo deben ser implementados en un hilo separado. Un hilo independiente es como un segundo proceso que se ejecuta en tu aplicación. La razón por la que la fuerza cerrada es porque se ejecutó el bucle en el hilo de interfaz de usuario, por lo que la interfaz de usuario no puede hacer nada, excepto por pasar por ese bucle. Tienes que colocar ese bucle en el segundo hilo para que el hilo de interfaz de usuario puede ser libre de ejecutar. Cuando se enhebra, no puede actualizar la GUI a menos que esté en el subproceso de interfaz de usuario. Aquí es cómo se haría en este caso.

    En primer lugar, crear un Runnable, que contendrá el código que loops en su método de ejecución. En ese Runnable, tendrás que hacer un segundo Runnable que publique en el subproceso de UI. Por ejemplo:

      TextView myTextView = (TextView) findViewById(R.id.myTextView); //grab your tv Runnable myRunnable = new Runnable() { @Override public void run() { while (testByte == 0) { Thread.sleep(1000); // Waits for 1 second (1000 milliseconds) String updateWords = updateAuto(); // make updateAuto() return a string myTextView.post(new Runnable() { @Override public void run() { myTextView.setText(updateWords); }); } } }; 

    A continuación, acaba de crear su hilo utilizando el Runnable y comenzarlo.

      Thread myThread = new Thread(myRunnable); myThread.start(); 

    Debería ver el bucle de la aplicación sin cierre de la fuerza.

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.