Android 的睡眠命令

发布于 2024-10-03 02:37:12 字数 501 浏览 2 评论 0原文

我正在编写一个小程序来定期轮询WIFI连接的RSSI。 我在程序中使用 SystemClock.Sleep(2000)

问题是,我想每 2 秒显示一次 RSSI。但是,目前,即使它每 2 秒轮询一次,结果也只会在循环结束时显示。

这是代码片段:

for(int i=0;i<10;i++)
        {
            Date dt=new Date();
            WifiInfo info = wifi.getConnectionInfo();
            int rssi = info.getRssi();
            textStatus.append("\n\nRSSI :" +Integer.toString(rssi)); 
            SystemClock.sleep(2000);
        }

如果您有一些建议,我会很高兴。

问候 基兰

I am writing a small program to periodically poll the RSSI of the WIFI connection.
I am using SystemClock.Sleep(2000) in the program.

The problem, I would like to display the RSSI every 2 seconds. But, currently, even though it polls every 2 seconds, the result is displayed only at the end of the loop.

Here is the code snippet:

for(int i=0;i<10;i++)
        {
            Date dt=new Date();
            WifiInfo info = wifi.getConnectionInfo();
            int rssi = info.getRssi();
            textStatus.append("\n\nRSSI :" +Integer.toString(rssi)); 
            SystemClock.sleep(2000);
        }

Would be glad, if you have some suggestion.

Regards
Kiran

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

メ斷腸人バ 2024-10-10 02:37:12

不要在 UI 线程中使用睡眠。

请执行以下操作:

  • 创建一个 MessageHandler (android.os.Handler) 来处理要显示的消息 (textStatus.append(...))
  • 创建一个工作线程来运行包含 sleep 的循环
  • 现在工作线程无法直接更新textStatus。而是从工作线程向消息处理程序发送消息。

添加:

这是一个可能对您有所帮助的有用链接:

请参阅“处理 UI 线程中的昂贵操作”部分

http://developer.android.com/guide/appendix/faq/commontasks.html#threading

Don't use sleep in the UI thread.

Do the following instead:

  • create a MessageHandler (android.os.Handler) that handles messages to be displayed (textStatus.append(...))
  • create a working thread that runs your loop that contains the sleep
  • now the working thread can't directly update the textStatus. Instead send a message from the working thread to the message handler.

ADDED:

Here is a useful link that might help you:

See section "Handling Expensive Operations in the UI Thread"

http://developer.android.com/guide/appendix/faq/commontasks.html#threading

虐人心 2024-10-10 02:37:12
  • 尝试在单独的线程中使用您正在做的事情,
  • 连续运行它直到您需要,
  • 使其睡眠 2 秒,做您的事情,
  • 从中更新主线程,
  • 循环此过程

希望这会有所帮助一点。

  • Try using the stuff that you are doing in a separate thread,
  • run it continuously till you require,
  • make it sleep for 2sec, do your stuff,
  • update the main thread from it,
  • loop this process

Hope this will help a bit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文