I am stuck with a problem, I want to wait 10 second because I want my application to start the code below after that 10 sec but without stopping that person from clicking anything else in the application (without calling 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(); }
Thread. sleep() method can be used to pause the execution of current thread for specified time in milliseconds. The argument value for milliseconds can't be negative, else it throws IllegalArgumentException .
By design, Android View objects are not thread-safe. An app is expected to create, use, and destroy UI objects, all on the main thread. If you try to modify or even reference a UI object in a thread other than the main thread, the result can be exceptions, silent failures, crashes, and other undefined misbehavior.
You can use this:
Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { // Actions to do after 10 seconds } }, 10000);
For Stop the Handler, You can try this: handler.removeCallbacksAndMessages(null);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With