当前位置: 首页 > 知识库问答 >
问题:

我怎么能等待10秒而不锁定android中的应用程序UI[重复]

夏弘义
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();
   }

共有3个答案

乜栋
2023-03-14

1带处理程序:

handler.sendEmptyMessageDelayed(1, 10000);
}

private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        if (msg.what == 1) {
           //your code
        }
    }
};
缑兴贤
2023-03-14

你永远不要在< code>UI线程上调用< code>thread.sleep(),因为听起来你已经搞清楚了。这冻结了< code>UI,并且总是一件坏事。您可以使用单独的< code>Thread和< code>postDelayed

这个SO答案显示了如何做到这一点,以及其他几个选项

处理者

计时器任务

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

曹疏珂
2023-03-14

你可以用这个:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
     // Actions to do after 10 seconds
    }
}, 10000);

对于停止处理程序,您可以尝试这样做:handler.removeCallbacksAndMessages(null);

 类似资料:
  • 问题内容: 我遇到了一个问题,我想等待10秒钟,因为我希望我的应用程序在那10秒钟后启动下面的代码,但又不阻止该人单击应用程序中的其他任何内容( _而无需_调用)。 问题答案: 您从不希望在线程上进行调用,因为听起来您已经弄清楚了。这会冻结并且始终是一件坏事。您可以使用一个单独的和 这样的答案显示了如何做到这一点以及其他几种选择 处理程序 计时器任务 您可以查看这些内容,然后查看哪种方法最适合您的

  • 问题内容: 是的,我知道这个问题经常被问到,但是我还是不明白。我想让Selenium等待,无论如何。我尝试了这些方法 和其他东西,但它不起作用。我需要selenium才能等待10秒。 NO 直到一些元素被加载或什么,只是等待10秒。我知道有这个 我不要那个 。 如果要花几秒钟(无法实现)等待selenium,那么其他(python)库/程序将能够完成此任务?使用Java Selenium似乎没有问

  • 到目前为止,我认为我已经掌握了async await如何使应用程序更具响应性的概念,但我有两点悬而未决: 层注意事项异步等待是否必须从存储库层一直到MVC或WCF层才能获得性能优势,或者我可以只对需要很长时间的存储库方法进行异步操作吗? “等待”用法如果我只能在存储库级别工作,有一部分我不明白。使用这种(低层)方法,线程能够在等待io绑定代码完成的同时为传入的客户端请求提供服务吗? 在我看来,当长

  • 我试图隐藏Actionbar并改用工具栏,但如果我更改Theme.appcompat.light.NoActionBar,它确实会隐藏,但应用程序在行setContentView(r.layout.activity_main)处崩溃; 尽管它确实使用getSupportActionBar()隐藏。hide();但我不能用这个代码 Toolbar Toolbar=(Toolbar)findViewB

  • 如何在此时等待3秒//等待3秒,然后继续 }

  • 我正在尝试向我的spring boot应用程序添加一个SIGTERM支持。为了测试它,我添加了一个控制器映射,该映射应该模拟长请求: 我使用嵌入式tomcat。问题在于,当请求处于活动状态时(在docker内部的shell脚本中使用CTRL C、/shutdown endpoint或trap),向进程发送kill SIGTERM时,应用程序会“关闭”测试请求,而不会等待调用完成。以下是调用SIGT