当前位置: 首页 > 面试题库 >

如何在不锁定Android应用程序用户界面的情况下等待10秒

景凌
2023-03-14
问题内容

我遇到了一个问题,我想等待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并且始终是一件坏事。您可以使用一个单独的ThreadpostDelayed

这样的答案显示了如何做到这一点以及其他几种选择

处理程序

计时器任务

您可以查看这些内容,然后查看哪种方法最适合您的特定情况



 类似资料:
  • 我遇到了一个问题,我想等待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,其他时候会晚一点。但它会发生。对于我的特定示例,我将其用作“无意义的工作”