Articles of 线程睡眠

线程和电池消耗

我正在开发应用程序,每5秒检查一次电话的状态。 我做到了这一点: Thread checking = new Thread() { public void run(){ while( <<some status>> ) { <<checkstatus and do something>> Thread.sleep(5000); } } } 这对电池不好? 我怎样才能做到这一点呢? 服务几秒钟后停止工作。

SystemClock.sleep()与Thread.sleep()在等待信号量循环时

为了同步/排队访问一个共享资源,我将在一个等待循环的帮助下使用信号量 。 为了不碰到CPU挂钩,我sleep()在while循环里面。 我search了http://developer.android.com引用,发现了两个这样的sleep()函数,我很困惑哪一个符合哪个场景: Thread.sleep()方法 SystemClock.sleep() 哪一个更适合我描述的情况,为什么?

Android睡眠/等待/延迟function

首先,我是一个初学Android的世界所以请道歉,如果这是愚蠢的问题.. 我正在尝试做以下事情: 启用移动数据 等待10秒 一个。 检查手机是否有IP地址(数据连接成功) 湾 如果未连接,则禁用数据 C。 转到第1步 这些步骤1到3在For循环中执行用户给定的重试次数。 现在我的问题是:我被困在第二步。 我无法使waitfor(int seconds)函数。 我尝试使用Runnable PostDelayed方法,但它不给我需要的输出。 for(retry = UserChoice; retry > 0 && !isDataAvailable ; retry — ){ enableInternet() delay(10) isDataAvailable = GetInternetAvailibility() if(!isDataAvailable){ disableInternet() } } 我尝试在postDelayed处理程序中放置isDataAvailable = GetInternetAvailibility()语句,但isDataAvailable = GetInternetAvailibility()在延迟后执行时导致enableInternet() disableInternet()同时执行。 我可以从日志中看到, enableInternet()为UserChoice执行次数没有任何延迟。 Thread.sleep(10000)只是冻结了10秒的用户界面…我怎么做到这一点? 编辑:让我清楚: public void onClick(View v) { // Perform action […]

Android睡眠()而不会阻塞用户界面

对于我的新的Android应用程序,我需要一个函数,超时我的应用程序3秒钟。 我试过这样的函数“sleep()”: seekBar1.setProgress(50); // Set something for my SeekBar try{ Thread.sleep(3000); // Wait for 3 Seconds } catch (Exception e){ System.out.println("Error: "+e); // Catch the exception } button.setEnabled(true); // Enable my button 它似乎工作,但如果我正在运行的应用程序它这样做:等待3秒,设置进度和启用button。 我首先要设置进度,然后等待3秒,然后才能启用button。 是“睡()”的权利为我使用,或者我可以做别的,我的应用程序按照正确的顺序吗?