Android显示空白屏幕与System.currentTimeMillis()

时间:2013-10-21 22:25:06

标签: java android user-interface

我在Android应用程序中有以下代码。每当这些代码行在我的应用程序中运行时,移动屏幕将变为空白10秒。这个'问题'很可能是由'System.currentTimeMillis()'

引起的
        for (i=0;i<10;i++)
        {
            time0 = System.currentTimeMillis();
            do
            {
            time1 = System.currentTimeMillis();
            }
            while ((time1 - time0) < 1000);
        } 

有没有办法可以避免空白屏幕?

由于

2 个答案:

答案 0 :(得分:3)

您获得空白屏幕10秒的原因是因为此部分代码阻止了UI线程。它与System.currentTimeMillis()的调用无关。

在每个for循环迭代中,您将一遍又一遍地检查时间,直到1秒过去。由于您执行for循环10次,因此您有效地阻止了UI线程10秒。

编辑:如果您想暂停执行几秒钟,请查看Java Timer Class

答案 1 :(得分:2)

这可能是因为您在UI线程中运行该段代码。为了避免空白屏幕,请尝试在单独的线程中运行它。

最简单的方法是使用AsyncTask。见http://developer.android.com/reference/android/os/AsyncTask.html