Я использую Java для создания приложения для Android. У меня есть основное задание: прочитать файл CSV, создать объекты, а затем сохранить их в одноэлементном классе, чтобы остальные действия в приложении могли легко получить к ним доступ.
Это прекрасно работает, но я не уверен, есть ли другие способы достижения того же результата, которые считаются лучшей практикой, или, возможно, мое решение может вызвать проблемы в будущем, о которых я не знаю.
Любой совет будет принята с благодарностью. Спасибо.
MainActivity расширяет AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createItemObjects();
}
public void createItemObjects(){
InputStream is = getResources().openRawResource(R.raw.items_csv);
BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
ArrayList<Item> items = new ArrayList<Item>();
String line = "";
try {
while((line = reader.readLine())!=null) {
String[] values = line.split(",");
String img = values[0];
int imgID = getResources().getIdentifier(img , "drawable", getPackageName());
items.add(new Item(imgID, values[1], values[2]));
}
} catch (IOException e) {
Log.v("Main Activity", "Error Reading File on Line " + line, e);
e.printStackTrace();
}
ItemListHolder.getInstance().setItemsArrayList(items);
}
Итак, как вы можете видеть, когда приложение запускает, оно читает файл CSV, создает объекты Item, создает ArrayList для хранения этих объектов Item, а затем отправляет его в одноэлементный объект ItemListHolder, чтобы все действия в приложении могли использовать ItemListHolder.getInstance (). GetItemsArrayList () для получения ArrayList элемента.
Это работает без каких-либо проблем, но мой вопрос: заставляет ли ваше Android-приложение создавать объекты из CSV-файла каждый раз, когда оно перезапускается, считается хорошей практикой / безопасным в использовании / эффективным и т. Д., Или вы должны хранить свои объекты каким-либо другим способом например, общие настройки, так что они фактически сохраняются в памяти и их не нужно создавать каждый раз, когда приложение запускается, а затем хранить в классе.
Я знаком с Java, но очень плохо знаком с android, поэтому действительно не знаю, какие другие способы сохранения объектов могут существовать или не существовать, или что считается полезным для использования.