Сохранить значение переменной - PullRequest
4 голосов
/ 11 февраля 2012

Мое приложение имеет только один класс обслуживания (не активность), в котором я сохраняю значение одной переменной, которая динамически рассчитывается одним методом.Затем мне нужно сохранить это значение для дальнейшего сравнения.Например:

class MyClass extends Service{

static int number1;


private void Method(){
int number 2;

/// some calculations for number2 ///

if number2 != number1 { number1 = number2 }

}

Мне нужно сравнить эту переменную (число 1) с некоторой другой переменной (число 2), которую вычислило мое приложение.Это работает хорошо, но когда ОС Android убивает мой сервис и запускает этот сервис по какому-то намерению (скажем, после перезагрузки телефона), значение number1 теряется, и я не могу использовать его для сравнения.Так как это сделать?Я подумал написать простой TXT-файл, в котором я мог бы сохранить значение number1 после закрытия службы,

, есть ли другой способ?

Ответы [ 2 ]

3 голосов
/ 11 февраля 2012

Самый быстрый способ - сохранить значение вашей переменной в SharedPreferences и извлечь его для дальнейшего использования.

Например:

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}

этот код взят со страницы разработчика Android , которая предназначена для Activity, но вы можете легко адаптировать ее в своем сервисе, изменив ее

1 голос
/ 11 февраля 2012

Вы должны сохранить значение в файл или базу данных, так как пользователи Android обычно отслеживают службы и приложения и могут закрыть службу так сохраните его в базе данных, чтобы позже при запуске службы проверить проверенное значение.

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