消息处理,工作线程的意外行为
|
我正在尝试一个带有后台服务的大型程序,并且正在使用基本的Handler对象实现消息处理过程(考虑较深)。该应用程序具有一个带按钮的主菜单,可启动6个不同的活动。
问题是这样的:如果我启动了一个工作线程,该线程启动了对数据库的查询并检索了一些数据,并且我关闭了启动上述工作线程的Activity,则Activity中的Handler仍然尝试运行并显示一个对话框,甚至尽管创建它的活动现在已经完成(或未处于焦点)。在提交任何(UI)更改之前,如何判断当前的Activity是否处于焦点?
我最终通过简单地将\'showDialog()\'调用放在try语句中来解决了该问题,但是我想要一个更复杂的解决方案,因为这似乎是错误的处理方式。
没有找到相关结果
已邀请:
2 个回复
戊袱
,让
注册
,以便在
中通过
进行广播,并在
中取消注册。然后,仅在事件处于前台时才处理事件。
骂陋冠
中,反转标志。 当需要显示对话框时,请选中此标志,并且仅在活动正在运行时才显示对话框。