¿Cómo puedo esperar 10 segundos sin bloquear la interfaz de usuario de la aplicación en android
Estoy atascado con un problema, quiero esperar 10 segundos porque quiero que mi aplicación para iniciar el código a continuación después de 10 seg pero sin detener a esa persona de hacer clic en cualquier otra cosa en la aplicación ( sin llamar a Thread.sleep();
).
try { Log.v("msg", "WAIT CheckFrequencyRun"); Thread.sleep(10000); // giving time to connect to wifi } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //if no network if(wifiManager.getConnectionInfo().getNetworkId()==-1){ //stop wifi wifiManager.setWifiEnabled(false); Log.v("msg", "no connection"); handler.postDelayed(this, checkInterval); } //else connection else{ Log.v("msg", "connection"); onDestroy(); }
- Cómo crear un juego simple android?
- Android Studio no me deja usar el interruptor en una cadena?
- ¿Es posible usar inflador de vista para inflar artículos individuales?
- El estilo de Android Holo Light cambia dependiendo del contexto elegido
- ¿Cómo obtener el primer día de la semana y mes actuales?
- Cómo recuperar el valor de un atributo que contiene dos puntos en el nombre del atributo utilizando xpath
- ¿Hay alguna manera de comprobar si una variable está definida en Java?
- Cómo establecer android: propiedad de ángulo de GradientDrawable de forma programática?
- ¿Cómo puedo cambiar el color de los clústeres en mi mapa de Google para Android?
- ID canónico de GCM
- ¿Cómo establecer un hipervínculo en textview clicable? Android Java
- Creación de la aplicación Native Android de Magento Site
- La mejor manera de depurar los mensajes de error de actualización
Usted nunca quiere llamar a thread.sleep()
en el hilo de la UI
ya que suena como usted ha descubierto. Esto congela la UI
y siempre es una mala cosa que hacer. Puede usar un Thread
independiente y postDelayed
Esta respuesta SO muestra cómo hacerlo, así como varias otras opciones
Entrenador de animales
TimerTask
Usted puede mirar estos y ver cuál funcionará mejor para su situación particular
Puede utilizar esto:
Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { // Actions to do after 10 seconds } }, 10000);
Echa un vistazo a estas preguntas, que parecen muy similares:
- ¿Cómo hacer que el código se detenga por un par de segundos en android?
- Android: Espera () el hilo principal mientras un diálogo recibe entrada en un hilo separado
- Android: esperando una acción
- Espera un momento – Android
Hacer esto en un nuevo hilo (separarlo del hilo principal)
new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).run();
1 con el manipulador:
handler.sendEmptyMessageDelayed(1, 10000); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { //your code } } };
- Java.lang.RuntimeException: eglSwapBuffers falló: EGL_SUCCESS
- Cómo eliminar todas las polilíneas de un mapa