0

每当我发现设备位置发生变化时,都会出现一个 AlertDialog。这几乎发生在应用程序认为合适的任何时候。

问题是,如果对话框出现在新 Activity 启动之前,则对话框会随旧 Activity 一起消失。无论如何让 AlertDialog 阻止新的意图?或者翻译到新的活动(我可以更新上下文)?

我注意到 AlertDialogs 甚至不处理设备旋转的情况,所以我对此的希望并不太高,但任何输入都会有所帮助。

4

2 回答 2

2

我会简单地使用 SharedPreference 设置并在您可能中断的活动开始时检查它。

前任;

  1. 将共享首选项值设置为 1
  2. 开始对话
  3. 完成后,将共享首选项保存为 0
  4. 如果活动开始并且共享偏好为 1,则它会中断,因此开始警报对话。如果是0,继续。

同样,一个 AlertDialog 旨在将自己附加到一个活动,所以你真的不能阻止它死亡,如果你以前的活动被推回或失去屏幕的焦点(ui线程基本上被搁置了!)

希望您可以通过这个小修复来解决您的问题。

添加丹尼尔评论的内容,自定义吐司可能很棒。然而,它们被限制在大约 3.5 秒(我认为)更多关于自定义吐司的信息;http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView

于 2012-10-04T03:44:26.103 回答
0

您的问题对我来说不清楚,据我了解,每当设备位置发生更改时,您都需要显示警报对话框,超过新的活动。我的建议是,当设备位置更改时获得需要的值,将其与意图捆绑在一起并通过它开始一个新的活动。使用捆绑包还传递一个布尔标志。如果布尔标志在新活动中为真,则在中显示一个警报对话框onCreate,我希望你能得到你想要的。这将是你的最佳方案按照我的理解执行此操作。此外,保留这些活动的历史记录可能会在实施此操作时影响应用程序。

于 2012-10-04T03:56:41.593 回答