根据 官方文档
Content Provider 的 onCreate() 方法在 Android 创建 Provider 后立即被系统调用调用。并且,由于在 ContentResolver 对象尝试访问提供程序之前不会创建该提供程序。 在我尝试使用 contentResolver 访问它之前,我的 onCreate 是如何被调用的? (注意:我什至没有访问提供者,但它的 onCreate 仍然被调用)
您链接到的
Provider.onCreate()
的文档明确指出:
实现此功能以在启动时初始化您的内容提供程序。这 为所有注册的内容提供商调用方法 应用程序启动时的应用程序主线程。因此 Android 将在应用程序启动时立即调用所有内容提供商的
onCreate()
。显然,在实例化内容提供程序之前,它无法调用
onCreate()
,因此这意味着应用程序启动后,Android 将立即实例化所有内容提供程序并在所有内容提供程序上调用
onCreate()
。您的应用程序必须适当处理此问题。