这似乎应该很简单,但是我在任何地方都找不到答案。我有一个在后台执行网络任务的Android应用程序。如果错误再次出现,我想显示一个错误对话框。当任务返回时,我不知道哪个Activity在前台。基于this post,看来我们不能使用应用程序上下文来显示对话框(确实,如果尝试尝试,我确实会崩溃)。
那么,如何获取当前 Activity 的上下文?同样,网络任务的接收器在Application上下文中运行,而不是在特定的Activity中运行。还有其他想法吗?
编辑:我应该澄清。如果我不是前台应用程序,我不想显示错误对话框。我只对我们的应用程序目前处于前台的情况感兴趣。
最佳答案
仅当您知道用户正在积极使用您的应用程序时,才执行此操作。如果您在其他事物(玩游戏,看电影,看书)中间打扰他们,用户会非常生气。
你不知道最多,您可以让当前 Activity 知道它需要做些事情。
一种可能性是使用有序广播,因此,如果您有前台 Activity ,它将获得控制权,否则,您将引发Notification
以使用户知道问题而无需弹出对话框。接收有序广播的 Activity 可以显示AlertDialog
或以其他方式让用户知道该问题。我写了有关如何执行in a blog post(和a book chapter)的详细信息,并介绍了here is a sample application演示该技术。
或者,让服务调用startActivity()
来启动a dialog-themed activity。
关于android - 如何在没有 Activity 上下文的情况下在android中显示对话框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9751088/