Android 开发问题:在无法直接获取或者通过传递获取 Context 的地方如何获取 Context

复制代码
在无法直接获取或者通过传递获取 Context 的地方,例如,工具类、静态方法中
如何获取 Context,调用 getExternalFilesDir 等方法?
处理策略
  1. 使用全局 Application 单例
java 复制代码
public class MyApplication extends Application {

    private static MyApplication myApplication;
    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();

        myApplication = this;
        context = getApplicationContext();
    }

    public static MyApplication getMyApplication() {
        return myApplication;
    }

    public static Context getContext() {
        return context;
    }
}
  1. AndroidManifest.xml 中声明
xml 复制代码
<application
    android:name=".application.MyApplication"
    ...>

    ...
</application>
  1. 在无法直接获取或者通过传递获取 Context 的地方调用
java 复制代码
File externalFilesDir = MyApplication.getMyApplication().getExternalFilesDir(null);
java 复制代码
// 或者

File externalFilesDir = MyApplication.getContext().getExternalFilesDir(null);
相关推荐
好好沉淀2 小时前
IDEA 取消 Save Actions 自动删除未用导入(前端开发避坑)
java·ide·intellij-idea
惟恋惜2 小时前
Jetpack Compose之“副作用”的讲解
android
qq_12498707532 小时前
基于SpringBoot学生学习历史的选课推荐系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·学习·毕业设计·毕设
廋到被风吹走3 小时前
【Spring】事务管理深度解析|从原理到实战
java·spring
lkbhua莱克瓦243 小时前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流
韩立学长3 小时前
【开题答辩实录分享】以《自选便利店商品分类管理系统》为例进行选题答辩实录分享
java·mysql·web
阿杰同学3 小时前
Java中55种锁,高级面试题,最新面试题
java·开发语言
清晓粼溪3 小时前
SpringCloud01-基础概念
java·开发语言·spring cloud
路边草随风3 小时前
java实现发布flink yarn application模式作业
java·大数据·flink·yarn