Как я могу получить доступ к файлу в моей папке res/raw из Singleton (а не активности) на Android? Я пробовал:Singleton, чтобы получить местоположение файла на Android
InputStream is = MainActivity.getResources().openRawResource("data.json");
, который не работает, так как «не-статические getResouces() метод не может ссылаться от статического контента». Я также попытался:
URL fileURL = getClass().getClassLoader().getResource(R.raw.data);
String filePath = fileURL.getPath();
, который бросает исключение нулевого указателя.
Мои Singleton:
public class CoursesDataManager {
private static CoursesDataManager instance;
private final List<Course> courses;
public static CoursesDataManager getInstance() {
if (instance == null)
instance = new CoursesDataManager();
return instance;
}
private CoursesDataManager() {
courses = parseCourses(**filePath/inputStream**);
}
Поэтому я хочу, чтобы получить файл в том, что я хочу, чтобы мой Singleton для анализа данных в этом файле один раз, хранить эти данные, и есть эти данные никогда не меняются и быть доступными на протяжении всей моей заявки.
Большое спасибо.
Вам нужен контекст в вашем классе без активности. – Raghunandan
Что это значит? Я не могу передать какие-либо параметры, так как это синглтон. –
http://developer.android.com/reference/android/content/Context.html#getResources(). Проверь это. – Raghunandan