如何捕获内容提供程序初始化?

ple*_*ock 21 android android-contentprovider

我们知道应用程序运行时内容提供程序加载.但我希望在内容提供商推出之前进行一些操作.我怎么抓住这个手术?在调用内容提供者的onCreate方法之前

ple*_*ock 28

我想我找到了解决方案.我已经创建了自定义应用程序类并重写了attachBaseContext方法

<application android:name=".ApplicationController" ...>
Run Code Online (Sandbox Code Playgroud)
public class ApplicationController extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);

        // some of your own operations before content provider will launch
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这可能目前有效,但我不知道它是否在各个版本中都是可靠的. (3认同)
  • 注意:在这个方法中,`getApplicationContext()` 也会返回 `null`,因为 `Application.onCreate()` 还没有被调用。 (2认同)

Com*_*are 11

但我希望在内容提供程序启动之前进行一些操作......在调用内容提供程序的onCreate方法之前

AFAIK,这是不可能的.onCreate()ContentProvider将是第一个机会,你必须运行的代码,你的过程后瞬间分叉.如果我理解正确,甚至在onCreate()被召唤之前就会发生这种情况Application.