Android:在toast显示中添加延迟?

时间:2014-08-23 12:10:55

标签: android toast

如果某个条件为toasttrue,我希望显示false。但是,在显示之前,我希望delaytwo seconds干杯。

我该怎么做?

当前if声明:

if (result.equals("true")) {

                        loginDataBaseAdapter.updateUploadedRecord(sessionId);

                            Toast.makeText(MathsGameResults.this,
                                    "Data is successfully uploaded.",
                                    Toast.LENGTH_LONG).show();

                        } else {
                            Toast.makeText(
                                    MathsGameResults.this,
                                    "Error while uploading. Please try again later.",
                                    Toast.LENGTH_LONG).show();
                        }

                    }

2 个答案:

答案 0 :(得分:7)

试试这个..

使用Handler

            // Handler which will run after 2 seconds.
            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                      Toast.makeText(MathsGameResults.this,
                                "Data is successfully uploaded.",
                                Toast.LENGTH_LONG).show();
                }
            }, 2000);

答案 1 :(得分:0)

延迟代码可能并不总是成功,尤其是在RAM较低的设备上。这是你可以做的。

定义此变量

boolean result;

如果数据成功上传,请在loginDataBaseAdapter代码末尾添加此代码

result = true;
showResult(result);

然后添加此方法 -

public void showResult(boolean i){

    if (result == true;) {

        loginDataBaseAdapter.updateUploadedRecord(sessionId);

        Toast.makeText(
                          MathsGameResults.this,
                          "Data is successfully uploaded.",
                          Toast.LENGTH_LONG
                      ).show();

    } else {

        Toast.makeText(
                       MathsGameResults.this,
                       "Error while uploading. Please try again later.",
                       Toast.LENGTH_LONG
                      ).show();
    }         
}

无论如何,这里是如何延迟代码 -

final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {

            if (result == true;) {

                loginDataBaseAdapter.updateUploadedRecord(sessionId);

                Toast.makeText(
                                MathsGameResults.this,
                                "Data is successfully uploaded.",
                                Toast.LENGTH_LONG
                              ).show();

            } else {

                Toast.makeText(
                               MathsGameResults.this,
                               "Error while uploading. Please try again later.",
                               Toast.LENGTH_LONG
                              ).show();
           }

        }
}, 5000);