Android 函数的顺序执行
Android sequential execution of functions
我知道 Android UI 并不是真正用于执行函数并等待它们完成,但是,我认为有一些用例需要它,比如网络。
我的问题是,我想要 运行 一系列相互依赖的网络操作,并且比下一次执行所花费的时间要多一些,所以需要等待一些时间:
- 启动热点
- 获取网络接口和IP
- 启动套接字
最初我测试了所有使用按钮的工作,然后它在我按下按钮之间等待。但现在我想自动化它。我用谷歌搜索,但我发现的都是带有异步任务的解决方案,该任务已被弃用。我尝试使用线程并加入,但这通常会导致 运行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
}
}
我知道 Android UI 并不是真正用于执行函数并等待它们完成,但是,我认为有一些用例需要它,比如网络。
我的问题是,我想要 运行 一系列相互依赖的网络操作,并且比下一次执行所花费的时间要多一些,所以需要等待一些时间:
- 启动热点
- 获取网络接口和IP
- 启动套接字
最初我测试了所有使用按钮的工作,然后它在我按下按钮之间等待。但现在我想自动化它。我用谷歌搜索,但我发现的都是带有异步任务的解决方案,该任务已被弃用。我尝试使用线程并加入,但这通常会导致 运行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
}
}