Android:如何在所有后台线程完成后启用按钮

Posted

技术标签:

【中文标题】Android:如何在所有后台线程完成后启用按钮【英文标题】:Android: how to enable button after all background threads finished 【发布时间】:2020-10-12 11:34:55 【问题描述】:

我是android新手,看起来很简单,但我有以下应用程序结构。

应用在主活动中有按钮(点击后变为禁用)和两个选项卡片段。

活动选项卡片段通过模型类运行大约 20 个线程。

所以只有模型类知道所有线程何时完成,但在模型中使用视图元素是一个糟糕的决定。

如何在所有后台线程完成后启用按钮?

超时是不好的选择,因为没有人知道将在什么设备上执行代码,这可能需要一些时间。 Thread.join()wait() 在我的情况下挂起 ui。

感谢您的任何建议。如有必要,我可以提供代码,但问题似乎很笼统。

【问题讨论】:

一种方法是,一旦线程完成执行,您可以使用回调来通知您的活动。 【参考方案1】:

您应该创建一个新的接口,作为侦听模型类中线程事件的侦听器

或者

当线程完成设置按钮启用时,使用 callBack() 通知 MainActivity。 要创建一个新的监听器,请参考这个问题:

How to create our own Listener interface in android?

【讨论】:

以上是关于Android:如何在所有后台线程完成后启用按钮的主要内容,如果未能解决你的问题,请参考以下文章

用户在 Swift 中提交所有文本字段后如何启用按钮

c#winforms中所有文本框都不为空后如何启用按钮?

我想在杀死进程后保持活动后台服务

如何在python中完成任务后停止线程?

所有表单字段通过后如何启用按钮

Android应用程序,当点击“启动服务”按钮后,启动后台服务,随机产生一个随机数