内容提供者的onCreate方法

10
我发现ContentProvider的onCreate方法会在我的Activity的onCreate方法之前被调用,例如:Vogella Android SqlLite。但我想知道这是怎么发生的,为什么会这样?是因为我们在Manifest中将其注册为提供者吗?
3个回答

10

onCreate方法是在启动时初始化内容提供程序的。该方法在应用程序启动时的主线程上被调用,用于所有已注册的内容提供程序。是的,这是因为您在清单文件中进行了注册...


1
另外,如果您不介意的话,能否解释一下控制流是什么?我的意思是它是如何发生的?我不明白每个方法之后调用了哪个方法。 - Smitha
1
你问了我一个更加概念性的问题,我不太确定……但是这是我从文档中理解到的:在启动应用程序时,清单将被检查以查找任何内容提供者。如果有任何内容提供者,它们的oncreate方法将被调用,以便在应用程序创建时立即可用。 - 5hssba
是的,我明白了。我想知道数据库实际上是在什么时候创建的,生命周期方法是什么,以及在这个项目中方法执行的顺序是什么? - Smitha
Sneha,如果你有后续问题,可以提出全新的问题。 - louielouie

0

ContentProvider.onCreate()(在清单文件中定义)在Application.onCreate()[多进程应用程序]之前被创建。与其他 Android 组件 - Activity、Service、Broadcast接收器一样。它在主线程中被创建和初始化。

您可以发现一些库使用此方法,以避免强制开发人员将库初始化到Application.onCreate()方法中并传递上下文。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接