gpt4 book ai didi

Android - 在 onCreate() 代码之前触发 onPostCreate() 代码

转载 作者:太空狗 更新时间:2023-10-29 14:26:11 24 4
gpt4 key购买 nike

我有两 block “验证”代码需要按特定顺序执行,但 onPostCreate() 事件中的代码在 onCreate() 事件中的代码之前触发,我怀疑它可能有什么与 Preference Store 相关。

一些伪代码可能有助于解释:

onCreate()
{
prefs = PreferenceManager.getDefaultSharedPreferences(this);
email = prefs.getString("email", "noemail@noemail.com").toString();
if (email.equals("noemail@noemail.com"))
{
//user has not supplied email address, show alert dialog
warning();
}
}

warning() 方法只是构建一个警告对话框,让用户知道他们需要输入电子邮件地址,当他们单击“确定”时,它会启动首选项 Activity ,以便他们可以提供电子邮件地址。

onPostCreate()
{
carrier = manager.getNetworkOperatorName();
if(carrier.equals("SPRINT"))
{
//call web service to validate carrier compatibility
//if web service returns "FALSE" call warning2();
}
}

warning2() 方法与 warning() 做同样的事情 - 它构建一个警告对话框让用户知道他们的运营商不兼容。

即使在 onCreate() 中调用了 warning(),并且在 onPostCreate() 中调用了 warning2(),目前应用程序在 warning() 对话框之前抛出 warning2() 对话框,而我没有明白为什么。

是否因为第二次验证调用 Web 服务而第一次验证正在检查首选项存储,并且 Web 服务调用以某种方式在可以访问首选项存储之前完成?

如何强制在第二次验证和 warning2() 之前处理第一次验证和 warning()?

最佳答案

您确定它首先调用 warning2 对话框,还是您只是先看到它?对话框不会阻止主要 Activity ,因此它可能首先调用 warning,但紧随其后,它会调用 warning2,这将覆盖第一个对话框。因此您会看到 warning2,并且直到它被解除才会看到警告,因为它直接分层在它下面。

关于Android - 在 onCreate() 代码之前触发 onPostCreate() 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12353412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com