Android在任何应用程序活动中显示来自后台线程的对话框

我试图找到明确的答案,但无法在任何地方找到它。我在主活动中运行后台线程来检查某个变量,如果它是真的,它应该显示警告对话框。我还希望此对话框显示应用程序的任何重点活动。我通过向线程添加Looper.prepare()和Looper.loop()来尝试它,但它不能正常工作,它影响我用来检查该线程中的变量的while()循环。任何人都可以帮助我找出实现这个的最佳方法是什么? 谢谢。     
已邀请:
如果使用main / ui线程构造后台线程,则可以在构造函数中创建
Handler
。当你想在main / ui线程上运行一些代码时,你只需要运行ui线程就可以了。 如果未在ui /主线程上构造后台线程,则可以使用BroadcastIntent和BroadcastReceiver模式在后台线程和前台活动之间发送消息。如果要在后台线程的使用寿命期间切换前台活动,这将特别有用。     
您可能想尝试创建
Runnable
的实现并将其传递给
View
post()
方法。
final Runnable r = new Runnable() {
    public void run() {
        //code to display dialog
    }
}

final View view = findViewById(R.id.XYZ);
view.post(r);
这将在UI线程上运行
Runnable
。     
好的,我可以看到两种方法。第一个是脏但很快: 您可以扩展
TimerTask
Handler
类。
YourTimerTask
将检查变量并发送
Message
YourHandler
YourHandler
应覆盖
handleMessage
并显示对话框。 第二个可能是一个矫枉过正,但仍然。 Android是基于事件的。这意味着系统为您提供了创建自己的事件并处理它的机会。所以,你可以开始一个
Service
,它将检查你的变量并发送一个
Broadcast
(可以是本地的)。在您的活动中,您必须创建自己的
BroadcastReceiver
并进行注册。该接收器将处理消息。     

要回复问题请先登录注册