Данные приложений Android не должны быть выпущены ОС Android - PullRequest
0 голосов
/ 18 января 2010
public class MYApplication extends Application {
   String property;

setter getter

}

код выше гарантирует, что свойство не будет собираться ОС Android, если оно не используется в течение длительного периода времени.

Ответы [ 2 ]

3 голосов
/ 18 января 2010

Нет. Android оставляет за собой право убить любое приложение в любое время, если сочтет это необходимым. Даже процессы переднего плана могут быть убиты , если устройству не хватает памяти. Это означает, что объект Application будет уничтожен, а все его атрибуты потеряны.

Единственный способ гарантировать, что переходное состояние вашего приложения никогда не будет потеряно, - это должным образом реагировать на события жизненного цикла, предлагаемые Android, или просто сохранять значения постоянно.

Если вы хотите сохранить String для своего приложения , почему бы не использовать Предпочтения ? Это означает, что значение никогда не будет потеряно, даже если устройство выключено.

private static final String PREFERENCE_MYSTRING = "mystring";

static String getProperty(Context context) {
    return PreferenceManager.getDefaultSharedPreferences(context)
        .getString(PREFERENCE_MYSTRING, "");
}

static void setProperty(Context context,String value) {
    PreferenceManager.getDefaultSharedPreferences(context)
        .edit()
        .putString(PREFERENCE_MYSTRING, value)
        .commit();
}

(Я не совсем уверен, что getter и setter есть в вашем примере кода, но я не думаю, что это актуально.)

0 голосов
/ 09 июля 2010

Насколько я понимаю, центральным является переопределение onDestroy(), если вы хотите, чтобы ОС Android не убивала ваш процесс.

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