Android-onPostCreate()代码在onCreate()代码之前触发
我有两块“验证”代码需要按特定顺序执行,但是onPostCreate()事件中的代码在onCreate()事件中的代码之前触发,我怀疑这可能与首选项存储有关 一些伪代码可能有助于解释:Android-onPostCreate()代码在onCreate()代码之前触发,android,sharedpreferences,oncreate,Android,Sharedpreferences,Oncreate,我有两块“验证”代码需要按特定顺序执行,但是onPostCreate()事件中的代码在onCreate()事件中的代码之前触发,我怀疑这可能与首选项存储有关 一些伪代码可能有助于解释: onCreate() { prefs = PreferenceManager.getDefaultSharedPreferences(this); email = prefs.getString("email", "noemail@noemail.com").toString(); if (email
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()方法只是构建一个警报对话框,让用户知道他们需要输入电子邮件地址,当他们单击“确定”时,它会启动“首选项”活动,以便他们可以提供电子邮件地址
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(),但目前应用程序在warning2()对话框之前抛出warning2()对话框,我不明白为什么
是否因为第二次验证调用了一个web服务,而第一次验证是检查首选项存储,并且web服务调用在访问首选项存储之前以某种方式完成了
如何强制第一次验证和警告()在第二次验证和警告2()之前处理?您确定它是先调用警告2对话框,还是先看到它?对话框不会阻止主活动,因此它可能首先调用
警告
,但紧接着调用警告2
,这将覆盖第一个对话框。所以你会看到警告2,直到它被解除,你才会看到警告,因为它就在警告2的正下方。啊,说得对。我假设如果先调用warning(),则该对话框将以模态方式显示,这样在处理第一个对话框之前,warning2()对话框将无法显示。谢谢,这就是发生的情况。Warning2()的调用顺序正确,只是在Warning2()之上分层。我早该抓到的。再次感谢!