Android 函数的顺序执行

Android sequential execution of functions

我知道 Android UI 并不是真正用于执行函数并等待它们完成,但是,我认为有一些用例需要它,比如网络。

我的问题是,我想要 运行 一系列相互依赖的网络操作,并且比下一次执行所花费的时间要多一些,所以需要等待一些时间:

  1. 启动热点
  2. 获取网络接口和IP
  3. 启动套接字

最初我测试了所有使用按钮的工作,然后它在我按下按钮之间等待。但现在我想自动化它。我用谷歌搜索,但我发现的都是带有异步任务的解决方案,该任务已被弃用。我尝试使用线程并加入,但这通常会导致 运行nable 发生奇怪的崩溃,而且它不是很优雅。请问有没有别的解决办法?

这样的怎么样?

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
          startHotspot();
          getNetworkInterfaceAndIP();
          startSocket();
         }
       }, 300);

您可以使用 SDK 做的最好的事情是 Executors 在后台按顺序 运行 您的工作

        val newSingleThreadExecutor = Executors.newSingleThreadExecutor()
        newSingleThreadExecutor.execute {
            // 1...
        }
        newSingleThreadExecutor.execute {
            // 2...
        }

但是如果你想从后台触摸 UI 应该创建处理程序检查视图是否不为空

        val handler = Handler(Looper.myLooper()!!)
        newSingleThreadExecutor.execute {
            handler.post {
                view?.visibility = View.GONE
            }
        }