Можно ли создать помощник базы данных ORMLite в классе Application?

Я пытаюсь создать приложение для Android, используя пакет ORMLite. У меня есть несколько действий и услуг, а также я использую https://github.com/tomquist/Android-Error-Reporter , чтобы получать сообщения об ошибках от клиентских PDA. ORMLite требует, чтобы все действия и службы расширяли OrmLiteBaseActivity и т. Д. Или добавляли соответствующий код для каждого действия, чтобы иметь возможность получить помощник базы данных и освободить его после завершения действия. поэтому добавлять этот код к каждому действию или услуге не очень удобно. У меня также есть несколько вспомогательных классов, которые могут использовать базу данных

. У меня также есть класс приложения, который содержит некоторую глобальную информацию и методы.Поэтому я решил открыть помощник ormlite в классе приложения и использовать его во всех действиях / классах следующим образом:

public class MyApplication extends Application {
  private volatile DatabaseHelper databaseHelper = null;

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

  @Override
  public void onTerminate() {
    if (databaseHelper != null) {
      OpenHelperManager.releaseHelper();
      databaseHelper = null;
    }
    super.onTerminate();
  }

  public DatabaseHelper getHelper() {
    if (databaseHelper == null) {
      databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class);
    }
    return databaseHelper;
  }
}

и использовать его в других классах следующим образом:

((MyApplication) getApplicationContext()).getHelper();

как вы думаете, это хорошая идея использовать его таким образом или могут быть утечки памяти или другие проблемы с этим? Меня беспокоит то, что onTerminate никогда не работает на реальных устройствах ... Я нахожусь на стадии «опробования новых вещей», поэтому хотел бы услышать какие-либо комментарии по этому поводу, чтобы устранить проблемы, которые я могу получить в будущем при неправильном подходе и отсутствии переписать код.

15
задан ROMANIA_engineer 17 June 2017 в 19:12
поделиться