Должно быть действие или служба, которая вызывает ваш класс, вы можете просто пройти this
в удобное для вас время. (Я предпочитаю передавать это в конструкторе).
При получении руки используйте контекстный момент.
E.g Из класса MyActivity
вы можете вызвать createDatabase(this)
или new DataServices(this)
, но в классе DataServices
тип аргумента должен быть context
вместо MyActivity
.
Теперь у вас есть параметр context, и вы можете использовать его по своему усмотрению, включая вызов openOrCreateDatabase()
.
Редактировать : Добавление кода
из Main.java
написать
DataBase database = new DataBase(this); //This will pass an instance of main. Which is eventually the subclass of Context.java
В классе DataBase : вам не нужно расширять действие там. В определении конструктора
public DataBase(Context context);
// Если вы используете eclipse и полагаетесь на некоторые автоматизированные инструменты, вы можете увидеть что-то вроде Main main. Но используйте эти строки, чтобы вы могли вызывать их из любого вида деятельности или услуги, передав это.
определить поле класса Context и отнести его к контексту arg.
Нравится this.localContext= context;
И с помощью переменной localContext вы можете вызвать столбец openOrCreateDataBase.
ADDITION : Если к вам прикреплен какой-либо элемент управления (подкласс зрения), вы можете создать экземпляр DataBase, вызвав new DataBase(view.getContext());
Надеюсь, это поможет вам .... если вам понадобится дополнительная помощь, не стесняйтесь комментировать ниже.