Подскажите как лучше всего решить следующую проблему (я вообще-то Delphi программист, и с этим у меня вопросов как-бы нет).
Есть объект класса Foo который создается в единственном экземпляре через newInstance() в OnCreate основной Activity.
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ...
Foo foo = Foo.newInstance(this);
if (foo != null) {
// можно работать
}
Код: Выделить всё
class Foo {
public static ArrayList<SubFoo1> subFoo1;
public static ArrayList<SubFoo2> subFoo2;
public static ArrayList<SubFoo3> subFoo3;
public static Foo newInstance(Context context) {
// создание объектов subFoo1, subFoo2, subFoo3 (загрузка данных через XML)
// данный метод может выбросить исключение если данные в XML файле некорректны
}
// сам конструктор - пустой
private Foo(Context context) { }
}
Что интересно, почему-то метод Foo.Finalize() - не вызывается
Что я могу сделать:
Явно удалить все внутренние структуры в OnDestroy основной Activity. Остается только один неясный момент, OnCreate может быть вызван несколько раз минуя OnDestroy().
см. lifecycle Activity:
http://developer.android.com/reference/ ... ivity.html
Как здесь лучше поступить?