Sleep () en java (Android)
Estoy siguiendo este tutorial para tener una pantalla de carga en mi programa. El tutorial dice que mi actividad debe Sleep () usando el comando Sleep (), sin embargo, no reconoce Sleep () como una función y me proporciona un error, preguntando si me gustaría crear un método llamado Sleep ().
Aquí hay un enlace al tutorial:
- Dibujar objeto personalizado curvado en LIBGDX?
- NullPointerException intentando leer Parcel String
- JSONParser no se puede resolver a un tipo
- Excepción LayoutInflater
- GetPrimaryClip () devuelve ClipData {text / plain {NULL}}
Http://androidcookbook.com/Recipe.seam;jsessionid=4DBCC1688B51DB16A2A40A86E135D361?recipeId=1599
Aquí está el ejemplo de código:
public class LoadingScreenActivity extends Activity { //Introduce an delay private final int WAIT_TIME = 2500; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); System.out.println("LoadingScreenActivity screen started"); setContentView(R.layout.loading_screen); findViewById(R.id.mainSpinner1).setVisibility(View.VISIBLE); new Handler().postDelayed(new Runnable(){ @Override public void run() { //Simulating a long running task this.Sleep(1000); System.out.println("Going to Profile Data"); /* Create an Intent that will start the ProfileData-Activity. */ Intent mainIntent = new Intent(LoadingScreenActivity.this,ProfileData.class); LoadingScreenActivity.this.startActivity(mainIntent); LoadingScreenActivity.this.finish(); } }, WAIT_TIME); } }
- Dalvik VM error: Excepción encontrada "Javax.xml.namespace.QName.class"
- Java, android, resolver un url, obtener redireccionado uri
- Problemas de inicialización de la clase cargando java.util.logging.LogManager en Android Dalvik VM
- ¿Qué tipo de efectos secundarios tiene libgdx numSamples?
- onItemClick, Intent, errores de startActivity
- ¿Cómo comprobar si existe un archivo uri conocido en el almacenamiento de Android?
- ¿Hacer cifrado SHA1 en Android?
- ¿Compartir un proyecto Android + Eclipse a través de SVN?
Puede utilizar uno de los siguientes métodos:
Thread.sleep(timeInMills);
o
SystemClock.sleep(timeInMills);
SystemClock.sleep(milliseconds)
es una función de utilidad muy similar a Thread.sleep(milliseconds)
, pero ignora InterruptedException
. Utilice esta función para retrasos si no utiliza Thread.interrupt()
, ya que preservará el estado interrumpido del subproceso.
La función es Thread.sleep(long)
.
Tenga en cuenta, sin embargo, que no debe realizar un sueño en el subproceso de interfaz de usuario.
El código que publicaste es horrible. No utilice eso en un dispositivo real. Obtendrá un error de "aplicación no responde" si ejecuta algo similar a esto.
Si utiliza Handlers, tenga en cuenta que se crea un Handler en el hilo donde se ejecuta . Así que llamar a new Handler().post(...
en el subproceso de interfaz de usuario ejecutará el ejecutables en el subproceso de interfaz de usuario, incluida esta "operación de ejecución larga" .La ventaja es que puede crear un controlador para el subproceso de interfaz de usuario que puede utilizar Posteriormente, como se muestra a continuación.
Para poner la operación de ejecución larga en un subproceso de fondo, debe crear un subproceso alrededor del ejecutable, como se muestra a continuación. Ahora, si desea actualizar la interfaz de usuario una vez que se ha completado la operación de larga ejecución, debe publicarla en el subproceso de interfaz de usuario utilizando un controlador.
Tenga en cuenta que esta funcionalidad es un ajuste perfecto para un AsyncTask
que hará que este aspecto mucho más limpio que el patrón de abajo. Sin embargo, incluyo esto para mostrar cómo se relacionan los manejadores, los subprocesos y los ejecutables.
public class LoadingScreenActivity extends Activity { //Introduce a delay private final int WAIT_TIME = 2500; private Handler uiHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); uiHandler = new Handler(); // anything posted to this handler will run on the UI Thread System.out.println("LoadingScreenActivity screen started"); setContentView(R.layout.loading_screen); findViewById(R.id.mainSpinner1).setVisibility(View.VISIBLE); Runnable onUi = new Runnable() { @Override public void run() { // this will run on the main UI thread Intent mainIntent = new Intent(LoadingScreenActivity.this,ProfileData.class); LoadingScreenActivity.this.startActivity(mainIntent); LoadingScreenActivity.this.finish(); } }; Runnable background = new Runnable() { @Override public void run() { // This is the delay Thread.Sleep( WAIT_TIME ); // This will run on a background thread //Simulating a long running task Thread.Sleep(1000); System.out.println("Going to Profile Data"); uiHandler.post( onUi ); } }; new Thread( background ).start(); }