Skip to content

1.FileProvider在React Native中的执行时机

罗坤 edited this page Apr 18, 2020 · 1 revision

android.support.v4.content.FileProvider拓展类在React Native中的执行时机

public class FileProvider extends android.support.v4.content.FileProvider {
    @Override
    public boolean onCreate() {
        
        System.out.println(getContext());//返回com.xx.MainApplication对象

        return super.onCreate();
    }
}

React Native 0.55.4版本之前

MainApplication初始化时会执行所有AndroidManifest.xml中注册的FileProvider拓展类, 但是在0.55.4这个版本之后不会执行。

所以

不要通过FileProvider获得MainApplication对象Context

这里给了几个方案:

  1. 使用RN提供的getApplicationContext()

  2. MainApplicationonCreate中初始赋值

    在自定义package中定义init之类的方法将获得的this存储到静态变量中。
    常见于第三方UI库

    public class MainApplication extends Application implements ReactApplication {
        @Override
        public void onCreate() {
            super.onCreate();
            //add here
            CustomPackage.init(this);
        }
    }