Android sdk初始化和全局无侵入式获取Context
最近发现我们的项目SDK基本都要在Application中做初始化操作,并且需要由用户调用,使用起来非常不友好,所以进行调研,发现ContentProvider实现静默初始化
ContentProvider
ContentProvider是Android四大组件之一,一般用于不同应用中的数据交互和共享。并且这个组件会在程序运行时进行初始化调用我们可以利用这个组件去获取Context和进行一些SDK的初始化,并且可以全局获取Context;
实现步骤
- 建立ApplicationProvider继承ContextProvider类,在ApplicationProvider类中创建静态变量Context,并实现onCreate方法,在onCreate中去获取Context;
public class ApplicationProvider extends ContentProvider {
@SuppressLint("StaticFieldLeak") static Context context;
@Override
public boolean onCreate() {
context = getContext();
//其他需要初始化实现的代码
....
return true;
}
- 在SDK的AndroidManifest.xml注册ApplicationProvider
<manifest xmlns:android=&#