我正在刺探一个具有后台服务的大型程序,而且我正在使用基本的Handler对象实现一个(相当糟糕的)消息处理过程。该应用程序有一个主菜单,其中包含启动6个不同活动的按钮。消息处理,与工作线程的意外行为
问题是这样的:如果我启动一个工作线程,它启动对数据库的查询并检索一些数据,并关闭启动上述工作线程的活动,则活动中的处理程序仍会尝试运行并显示一个对话框,即使创建它的活动现在已完成(或未聚焦)。如何在提交任何(UI)更改之前判断当前的Activity是否处于焦点状态?
我最终通过简单地将'showDialog()'调用放在一个try语句中解决了这个问题,但我想要一个更复杂的解决方案,因为这看起来似乎是错误的做法。
这需要我完全重写我的消息处理,但这是预期的。 – moonlightcheese 2011-06-07 21:49:34