как сделать выключение программируемой кнопки на N времени?

есть задача по нажатию кнопки выключать другие кнопки в приложении на определенное количество времени! причем что бы это все сохранялось при перезагрузке приложения! когда время закончится, то все восстанавливалось!

впринципе простой код накидал, но при перезагрузке приложения, все скидывается! заставить все это дело сохранять любые изменения?

serButton.setVisibility(View.GONE);
 ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
            exec.schedule(new Runnable() {
                @Override
                public void run() {
                    MapsActivity.this.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                        userButton.setVisibility(View.VISIBLE);
                        }});}}, 1, TimeUnit.MINUTES);
        }});

Ответы (1 шт):

Автор решения: ЮрийСПб

Вообще, такая задача - нерешаемая, если не идти на множество компромисов.

В самом грубом приближении вам надо просто в SharedPreferences записывать отметку времени и считывать её после пересоздания активити.

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

В итоге, если вам нужно просто грубое решение с большим кол-вом недочётов - пишите и считывайте время из SharedPreferences.

→ Ссылка