Как и предлагали другие, вы должны сохранить настройки вашего флажка в SharedPreferences
. Основная идея заключается в том, что в вашем методе onPause()
вы читаете состояние вашего пользовательского интерфейса и записываете эти значения в настройки. Затем в onResume()
вы читаете эти значения обратно и заново заполняете пользовательский интерфейс.
Пример в ссылке Хранение данных помещает сохранение настроек в onStop()
, однако android Основы применения утверждают, что:
Обратите внимание на столбец Killable в таблице выше. Он указывает, может ли система завершить процесс, в котором размещено действие , в любое время после возврата из метода без выполнения другой строки кода действия . Три метода (onPause()
, onStop()
и onDestroy()
) помечены как «Да». Поскольку onPause()
является первым из трех, это единственный, который гарантированно будет вызван перед завершением процесса - onStop()
и onDestroy()
могут не быть. Поэтому вы должны использовать onPause()
для записи любых постоянных данных (таких как пользовательские изменения) в хранилище.
Как таковой, я бы предложил написать предпочтения в onPause()
, а не onStop()
.