传统的项目结构中Application毫无疑问,肯定是放在app目录下的。
说一说我遇到问题的场景:
本人正在base moudle中新建RxJava+Retrofit+OkHttp的请求框架式,在新建拦截器Interceptor的时候有一个地方需要用到Application。这就有点尴尬了呀。
其实我们完全可以换一个思路嘛,Lib模块不就是要一个Application吗,给他~
Moudle base作为一个基础库或者说是公共依赖包,所有的Moudle都是需要依赖它的,那么就来一个BaseApplication吧
public class BaseApplication extends Application {
/**
* 系统上下文
*/
private static Context mAppContext;
@Override
public void onCreate() {
super.onCreate();
mAppContext = getApplicationContext();
}
/**
* 获取系统上下文:用于ToastUtil类
*/
public static Context getAppContext() {
return mAppContext;
}
}
接下来我们看看app工程,首先是app-gradle
implementation project(':base')
接下来就是继承了
public class MyApplication extends BaseApplication {
private RefWatcher refWatcher;
@Override
publ