我想让Toast出现,然后让睡眠运转。
如果我这样做,Toast出现在睡眠之后,但我想要反过来。有人有建议吗?这是我的代码
switch (checkedRadioButton) {
case R.id.radio0 : radioButtonSelected = "radiobutton1";
Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_LONG).show();
vd.vibrate(100);
android.os.SystemClock.sleep(1000);
vd.vibrate(100);
感谢到目前为止
答案 0 :(得分:2)
toast的显示是异步(即非阻塞调用)操作,意味着一旦执行了toast请求,操作系统将跳转到下一个操作,同时准备并显示toast。
要获取默认行为,应在延迟几秒后执行线程睡眠调用。为此使用Handler
及其 postDelay 方法。
延迟时间应该是:
LONG_DELAY = 3500; // 3.5 seconds
SHORT_DELAY = 2000; // 2 seconds
答案 1 :(得分:0)
Try to use AsyncTask class.Write this code as it is. no need to take the name of variable of class AsyncTask.
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPostExecute(Void result) {
Toast toast2 = Toast.makeText(context, "Task completed",
Toast.LENGTH_SHORT);
toast2.show();
}
@Override
protected void onPreExecute() {
Toast.makeText(getApplicationContext(), "here is your text before Sleep", Toast.LENGTH_LONG).show();
}
@Override
protected Void doInBackground(Void... voids) {
try {
Thread.sleep(1000); // time in milisec 1000ms= 1sec
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}.execute();