ApplicationProxy 代理类

使用方式:
ApplicationProxy.getInstance().getApplication();
ApplicationProxy.getInstance().getApplicationContext();
需要要在

public class BaseApplication extends Application{
    ApplicationProxy.getInstance().setApplication(this);
}

建议把这个代理类放到组件化最底层那个model下,在这model之上的包,需要使用getApplication/getApplicationContext

的地方都要使用上面的方式获取,保证统一性,正确性。源码如下:



public class ApplicationProxy {
    private static Application mApp;

    public void setApplication(Application app) {
        if (null == app) {
            throw new IllegalArgumentException("The app can not be null!");
        }

        mApp = app;
    }

    public Application getApplication() {
        if (null == mApp) {
            throw new IllegalArgumentException("The app is null, need call setApplication in Host*Application attachBase_Fun");
        }
        return mApp;
    }

    public Context getApplicationContext() {
        if (null == mApp) {
            throw new IllegalArgumentException("The app is null, need call setApplication in Host*Application attachBase_Fun");
        }
        return mApp.getApplicationContext();
    }

    public static ApplicationProxy getInstance() {
        return SingletonHolder.instance;
    }

    private static class SingletonHolder {
        private static final ApplicationProxy instance = new ApplicationProxy();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值