0

也许代码类型显示了我正在尝试做的事情,所以我将从它开始

private void getLicenseResults() {

    if (licensed && didCheck == true) {

        Thread timer = new Thread() {
            public void run() {
                try {
                    sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent openStartingPoint = new Intent(
                            "***.MAINACTIVITY");
                    startActivity(openStartingPoint);
                    finish();
                }
            }
        };
        timer.start();
    }

    if (didCheck == false) {

        Toast.makeText(Splash.this, "Checking License, Please Wait",
                Toast.LENGTH_LONG).show();

        Thread timer = new Thread() {
            public void run() {
                try {
                    sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    getLicenseResults();
                    Log.i("LICENSE", "re-checking");
                }
            }
        };
        timer.start();
    }

}

我之前没有尝试循环就运行了许可证检查,并且它可以工作,除非检查时间超过几秒钟,它会跳​​过

if (licensed && didCheck == true)

并且该活动只是站着等待而没有启动我的主要活动(此检查在启动屏幕上)。

所以我希望只有在 didCheck 实际上最终为真之后才调用“if didCheck = true”部分。我确信有一个简单的解决方案,但我是自学成才的,我没有循环或回调的经验(?)。

感谢您的任何帮助!

4

1 回答 1

0

在调用 getLicenseResults 之前,您没有在第二个 if 语句中将 didCheck 设置为 true

于 2013-10-24T04:46:55.090 回答