警报对话框在新活动开始时丢失



每当我发现设备位置已更改时,我都会出现一个警报对话框。这几乎发生在应用程序认为合适的任何时候。

问题是,如果对话框在新活动启动之前出现,则对话框会随着旧活动一起消失。无论如何,警报对话框可以阻止新的意图吗?或者转换为新的活动(我可以更新上下文吗)?

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

我只会使用共享首选项设置,并在潜在中断活动开始时检查它。

前任;

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

同样,AlertDialog 旨在将自身附加到活动,因此如果您之前的活动被推回或失去屏幕焦点,您真的无法阻止它死亡(UI 线程基本上被搁置!

希望您能通过此小修复解决您的问题。

补充一下丹尼尔的评论,定制吐司可能很棒。但是,它们仅限于大约 3.5 秒(我认为)更多关于定制吐司的信息;http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView

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

最新更新