0

我必须更改现有的应用程序。我需要让应用程序以在完成各种初始化时显示的初始屏幕启动。(这可能需要一段时间,因此启动画面)

但是我看到的是,在调用应用程序的 onCreate 之前调用了内容提供者的 onCreate。此内容提供者必须依赖在初始化应用程序时加载的数据。

谁能告诉我应用程序启动时采取了哪些步骤?此外,谁能告诉我如何克服这种 catch-22 情况?

4

1 回答 1

0

我需要让应用程序以在完成各种初始化时显示的初始屏幕启动。(这可能需要一段时间,因此启动画面)

启动画面被认为是不良形式。允许用户进入某些应用程序,即使您必须阻止某些部分等待某些数据从 Internet 加载。

谁能告诉我应用程序启动时采取了哪些步骤?

您的Application对象和所有ContentProvider实现都是在其他任何事情发生之前创建的(例如,创建活动)。从面向开发人员的代码的角度来看,就是这样——框架本身做了更多的事情,但没有什么会触发我们代码的回调。

此外,谁能告诉我如何克服这种 catch-22 情况?

摆脱ContentProvider,因为您可能不需要它。

或者,从其方法重写ContentProvider为不需要“加载的数据” 。onCreate()

或者,重新构建您的应用程序以使用缓存、同步等,这样应用程序就可以在开始时不受限制地启动。作为奖励,这个也可以让你摆脱启动画面。

于 2012-10-12T11:46:04.230 回答