2

我想让 Toast 出现,然后让 sleep 运行。

如果我这样做,吐司会在睡眠后出现,但我希望它反过来。有人有建议吗?这是我的代码

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);

到目前为止谢谢

4

2 回答 2

2

toast 的显示是一个异步的(即不是阻塞调用)操作,意味着一旦执行了 toast 请求,操作系统就跳转到下一个操作,同时准备并显示 toast。

要获得您的默认行为,您应该在延迟几秒钟后执行线程睡眠调用。为此使用 aHandler及其postDelay方法。

延迟时间应该是这样的:

LONG_DELAY = 3500;  // 3.5 seconds
SHORT_DELAY = 2000; // 2 seconds
于 2013-04-01T23:12:47.083 回答
0

尝试使用 AsyncTask 类。按原样编写此代码。不需要取类 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();
于 2017-05-16T09:35:45.607 回答