在无法直接获取或者通过传递获取 Context 的地方,例如,工具类、静态方法中
如何获取 Context,调用 getExternalFilesDir 等方法?
处理策略
- 使用全局 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;
}
}
- 在
AndroidManifest.xml中声明
xml
<application
android:name=".application.MyApplication"
...>
...
</application>
- 在无法直接获取或者通过传递获取 Context 的地方调用
java
File externalFilesDir = MyApplication.getMyApplication().getExternalFilesDir(null);
java
// 或者
File externalFilesDir = MyApplication.getContext().getExternalFilesDir(null);