新活动开始时,AlertDialog丢失

时间:2012-10-04 03:38:05

标签: android android-intent android-activity alertdialog

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

问题是,如果对话框在新活动启动之前出现,则对话框将随旧活动消失。反正有没有AlertDialog阻止新的Intents?或者翻译成新的活动(我可以更新上下文)吗?

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

2 个答案:

答案 0 :(得分:2)

我只需使用SharedPreference设置,并在可能中断活动开始时检查它。

实施例

  1. 将共享偏好设置为1
  2. 开始对话
  3. 完成后,将共享首选项保存为0
  4. 如果活动开始且共享偏好为1,则会中断,因此启动提醒对话。如果是0,继续前进。
  5. 同样,一个AlertDialog意味着将自己附加到一个活动,所以你真的无法阻止它死亡,如果你以前的活动被推回或失去了屏幕的焦点(ui线程基本上被搁置!)< / p>

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

    要添加Daniel评论的内容,自定义Toast 可以非常棒。然而,他们被限制在约3.5秒(我认为) 更多关于Custom Toasts的信息; http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView

答案 1 :(得分:0)

你的问题对我来说并不清楚,正如我所知,你需要在设备位置发生变化时显示一个Alertdialog,它太高于新活动。我的建议是,当设备位置发生变化时,得到需求值,捆绑它有意图并传递它开始一个新的活动。捆绑也传递一个布尔标志。如果新活动中的布尔标志为真,则显示onCreate中的警告对话框,我希望你能得到你想要的。根据我的理解,这将是您执行此操作的最佳方案。在实施此操作时,保留这些活动的历史记录可能会影响应用程序。