¿Cómo pausar / retrasar en Android?

Actualmente estoy aprendiendo cómo desarrollar aplicaciones para dispositivos móviles Android.

Escribí una aplicación de prueba para mostrar los números 0-9 en la pantalla del dispositivo. Creé una función simple para retrasar el cambio de número.

Sin embargo, al ejecutar la aplicación, solo se muestra el número final. También hay un retraso antes de que se muestre este número final. Supongo que la duración de la pausa es mi retraso definido multiplicado por el número de dígitos que se mostrarán.

¿Cómo creo una aplicación que cambia los números con retraso?

public class AndroidProjectActivity extends Activity {
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        Main();
    }

void Delay(int Seconds){
    long Time = 0;
    Time = System.currentTimeMillis();
    while(System.currentTimeMillis() < Time+(Seconds*1000));
}

void Main() {
    String ConvertedInt;
    TextView tv = new TextView(this);
    setContentView(tv);

    for(int NewInt = 0; NewInt!= 9; NewInt++){
        ConvertedInt = Character.toString((char)(NewInt+48));
        tv.setText(ConvertedInt);
        Delay(5);
    }
}
Respuesta 1

Una forma de hacerlo es crear un ejecutable que actualice su vista. Esto todavía se actualizará en el hilo de la interfaz de usuario, pero espere en segundo plano. Puede haber errores en el siguiente código, pero debería ejecutarse con pequeños ajustes.

El bloqueo de cualquiera de las llamadas del sistema en su actividad no es bueno, ya que está bloqueando el hilo de la interfaz de usuario. Su aplicación se cerrará a la fuerza, con un mensaje de Aplicación que no responde. Aquí hay otro buen ejemplo .

public class AndroidProjectActivity extends Activity {
    private Handler mHandler;
    private TextView mTextView;
    private Runnable mCountUpdater = new Runnable() {
        private int mCount = 0;
        run() {
           if(mCount > 9)
               return;
           mTextView.setText(String.valueOF(mCount+48));
           mCount++;
           // Reschedule ourselves.
           mHandler.postDelayed(this, 5000);
        }
    }
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        // Cleaner to load a view from a layout..
        TextView tv = new TextView(this);
        setContentView(tv);
        mTextView = tv;
        // Create handler on UI thread.
        mHandler = new Handler();
        mHandler.post(mCountUpdater);
    }
}
Respuesta: 2

Trate de crear una thread, which sleeps for certain interval of timey luego incrementar el valor de 1 hasta 9. Y el uso Handler to update the UI.

También puedes usar AsyncTask

Respuesta: 3

Tengo un archivo binario como este: offset | tamaño / tipo | Descripción ------- + ----------- + ----------------------------- ------------------------------ 0x0000 | 28 caracteres | cadena terminada en cero 0x001c | ...

Estoy tratando de hacer Microsoft Translator API en mi aplicación Java. Me registré en el mercado de Windows Azure y registré mi aplicación Microsoft Translate, así que tengo estos ClientId y Client ...

Los datos continuos de tres sensores (x, y y z) se almacenan en un Hashmap (nombres de sensores como Clave y datos en ArrayList como valor). Para los datos de cada sensor, necesito aplicar un filtro de paso bajo. Lo estoy intentando ...

Estoy tratando de encontrar y reemplazar un texto de diferentes secciones de encabezado en cada página usando Apache poi pero obteniendo solo datos nulos, pero Docx tiene diferentes secciones de encabezado y pie de página también paquete com ...