我遇到了一个问题,我想等待10秒钟,因为我希望我的应用程序在那10秒钟后启动下面的代码,但又不阻止该人单击应用程序中的其他任何内容( _而无需_调用Thread.sleep();
)。
try {
Log.v("msg", "WAIT CheckFrequencyRun");
Thread.sleep(10000); // giving time to connect to wifi
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//if no network
if(wifiManager.getConnectionInfo().getNetworkId()==-1){
//stop wifi
wifiManager.setWifiEnabled(false);
Log.v("msg", "no connection");
handler.postDelayed(this, checkInterval);
}
//else connection
else{
Log.v("msg", "connection");
onDestroy();
}
您从不希望thread.sleep()
在UI
线程上进行调用,因为听起来您已经弄清楚了。这会冻结UI
并且始终是一件坏事。您可以使用一个单独的Thread
和postDelayed
这样的答案显示了如何做到这一点以及其他几种选择
处理程序
计时器任务
您可以查看这些内容,然后查看哪种方法最适合您的特定情况
我遇到了一个问题,我想等待10秒,因为我希望我的应用程序在这10秒后启动下面的代码,但不阻止该人单击应用程序中的其他任何内容(不调用)。
我是JDBC概念的新手。我已经构建了一个 java 客户端来使用选择查询从表中读取数据。据我所知,当您执行选择查询数据库时,将应用锁定,这可能会使表发生的插入速度变速。有没有办法在不应用锁的情况下执行选择查询。我的表是 DB2 数据库。
我想暂停在JavaFX应用程序线程上执行方法并等待用户与UI交互。不要冻结UI很重要。 例子: 我应该如何实现< code>pause()和< code>resume()方法?< br >事件处理程序的执行应在< code>pause()处等待;调用,直到用户按下< code>resume按钮并且调用< code>resume方法。
问题内容: 该代码选择同一文件夹中的所有xml文件,作为被调用的可执行文件,并以异步方式将处理应用于回调方法中的每个结果(在下面的示例中,仅打印文件名)。 如何避免使用sleep方法阻止main方法退出?我在解决问题时遇到了麻烦(我想这就是同步结果所必需的),因此,我们将不胜感激! 问题答案: 您可以使用sync.WaitGroup。引用链接的示例:
问题内容: 我当前正在使用subprocess.call()来调用另一个程序,但是它将阻塞正在执行的线程,直到该程序完成。有没有一种方法可以简单地启动该程序而无需等待返回? 问题答案: 使用代替:
我遇到了一个非常奇怪的问题,java线程正忙着等待。 我有一个线程忙于等待其他线程的静态变量的状态。假设忙碌等待的线程正在等待另一个线程的静态int变量达到某个值 如果我使用上面的代码,线程将被卡在忙等待中,不会跳出while循环,即使确实达到5。 但是,如果我使用其他代码,那么线程确实会跳出忙等待循环。有时,一旦达到5,其他时候会晚一点。但它会发生。对于我的特定示例,我将其用作“无意义的工作”