Могу ли я использовать действие, чтобы инициализировать некоторые объекты, а затем закончить? - PullRequest
1 голос
/ 19 июня 2011

Если я инициализирую некоторые статические объекты в деятельности и затем вызываю finish(), существуют ли эти объекты в другом месте приложения?Как, скажем, я хочу получить к ним доступ позже в службе.

Если нет, есть ли другие решения, где я мог бы инициализировать некоторые статические объекты один раз, когда другие классы будут иметь доступ?

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Да, это возможно.Но чтобы статические объекты продолжали существовать, в приложении должна быть хотя бы одна активность / служба.Что я обычно делаю для таких переменных - это создаю класс для хранения статических методов и переменных.Примерно так:

public class Utils
{
    public static String s;
    public static int i;

    public static initStatics()
    {
        s = "";
        i = 0;
    }
}

Это можно вызывать из других ваших действий / служб, например:

public class CustomService extends Service
{
    @Override
    public void onStart()
    {
        Utils.initStatics();
    }
}

Итак, эти переменные будут доступны, пока ваше приложение работает.Надеюсь, что это помогло.Удачи!

1 голос
/ 19 июня 2011

Для подобных вещей вы можете использовать статические переменные-члены объекта Application . Вам нужно будет выполнить очистку вручную (так как onDestroy никогда не вызывается), и вам нужно убедиться, что в приложении запущена хотя бы одна активность / служба, чтобы предотвратить разрушение процесса приложения ОС. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...