0

我的 android 应用程序中有以下代码。每当这些代码行在我的应用程序中运行时,手机屏幕就会空白 10 秒。这个“问题”很可能是由“System.currentTimeMillis()”引起的


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

有什么办法可以避免黑屏吗?

谢谢

4

2 回答 2

3

出现 10 秒黑屏的原因是这部分代码阻塞了 UI 线程。它与调用无关System.currentTimeMillis()

在每次 for 循环迭代中,您都会一遍又一遍地检查时间,直到 1 秒过去。由于您执行了 10 次 for 循环,因此您实际上将 UI 线程阻塞了 10 秒。

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

于 2013-10-21T22:28:39.450 回答
2

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

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

于 2013-10-21T22:30:24.230 回答