Skip to content

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

Open
@1uokun

Description

@1uokun

在FileProvider中获取MainApplication Context

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);
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Changelog由于版本更新造成的差异性

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions