Совместное использование объектов между действиями в Android

Привет, у меня есть вопрос о передаче объекта по всему приложению. Скажем, я хочу иметь большой пользовательский объект в приложении. Этот объект будет использоваться несколькими видами деятельности и услугами. Сначала я сделал это.

Сначала я создал класс Application и определил одноэлементный объект.

public class FooApplication extends Application {
    public static SharedObj obj;
    ...
}

Во-вторых, в упражнении я устанавливаю значение этого объекта

public class FooActivity extends Activity {
    OnCreate() {
        FooApplication.obj = SharedObj.getInstance();
    }
}

В-третьих, в другой деятельности я получаю доступ к этому объекту

public class BarActivity extends Activity {
    OnCreate() {
        SharedObj useThis = FooApplication.obj;
    }
}

У меня вопрос, что с этим не так? Кажется, это работает нормально, но я обнаружил, что иногда значение этого одноэлементного объекта по какой-то причине устанавливается в нуль. Основная причина, по которой я делюсь этим объектом, а не делаю его разлагаемым, заключается в том, что это довольно дорого для меня, а то, что я сделал, выглядит очень легко. Есть ли обратная сторона?

После некоторых исследований я обнаружил, что есть еще один способ поделиться объектом по всему приложению.

Сначала определите в классе приложения

public class FooApplication extends Application {
    public SharedObj obj = new SharedObj();
    ...
}

Во-вторых, инициализируйте в такой деятельности, как это

public class FooActivity extends Activity {
    OnCreate() {
        FooApplication fooApp = (FooApplication)getApplicationContext();
        fooApp.obj = new SharedObj();
    }
}

В-третьих, в другой деятельности я получаю доступ к этому объекту

public class BarActivity extends Activity {
    OnCreate() {
        SharedObj useThis = ((FooApplication)getApplicationContext()).obj;
    }
}

Чем этот метод (с использованием getapplicationContext ()) отличается от использования одноэлементного объекта, как я делал в первом разделе? Это больше рекомендуется?

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос