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);
相关推荐
IT枫斗者3 小时前
构建具有执行功能的 AI Agent:基于工作记忆的任务规划与元认知监控架构
android·前端·vue.js·spring boot·后端·架构
迷藏4943 小时前
**发散创新:基于角色与属性的混合权限模型在微服务架构中的实战落地**在现代分布式系统中,
java·python·微服务·云原生·架构
码以致用3 小时前
Java垃圾回收器笔记
java·jvm·笔记
阿巴斯甜3 小时前
ARouter的使用
android jetpack
暴力袋鼠哥3 小时前
基于springboot与vue的ai多模态数据展示看板
java·spring boot
用户69371750013843 小时前
XChat 为什么选择 Rust 语言开发
android·前端·ios
用户8307196840823 小时前
VS Code Java开发配置与使用经验分享
java·visual studio code
林栩link3 小时前
【车载 Android】实践跨进程 UI 融合渲染
android
立莹Sir3 小时前
云原生全解析:从概念到实践,Java技术栈如何拥抱云原生时代
java·开发语言·云原生