Android 工具类去掉context Application——如何让你的工具类更简洁

有没有经常用过

    public static int dip2px(Context context, float dipValue) {
        return (int) (dipValue * context.getResources().getDisplayMetrics().density + 0.5f);
    }
    public static void toast(Context context, CharSequence cs) {
        ...
    }
等等等等

每次在你使用或封装的时候都自热而然的会加上context,但有没有想过:我为什么不能省略context呢?

现在我告诉你,当然可以,你只需要1行代码

public class MyApplication extends Application {

    public static MyApplication mApp;

    public SharedPreferences mSingleSp;

    @Override
    public void onCreate() {
        super.onCreate();
        mApp = this;//这里必须是第一行
        mSingleSp = getSharedPreferences("xx", Context.MODE_PRIVATE);
    }
}

是不是很简单,什么获取sp、什么清除缓存、什么吐司、什么dp转换、什么文件读写、什么资源获取...这些都不再需要context了。

FileUtils.getDiskCacheDir()
SPUtilImpl.getXX();
Utils.toast(”无需传context“)
Utils.dip2px(1f)
Utils.getNetWorkInfo()
DataCleanManager.cleanInternalCache()
...需要context的都可以省略

有人也许会说,你对Application静态引用不会引起内存泄漏吗?

Application即为应用程序的意思,是android应用存在内存中的标识,还是那句老话:Application在app就是活的,Application亡app就一定不在内存里了,Application的生命周期比静态常量还高,静态引用又算得了什么呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值