Сохранение работы CountDownTimer после остановки приложения Android

Привет, я новичок в Android и Java Мне нужна помощь !! В этом коде я стараюсь, чтобы обратный отсчет работал после уничтожения или остановки приложения (Android). я хочу, чтобы телефон заблокировался, даже если я остановлю приложение вы можете увидеть код ниже я знаю, что мне нужен onStop (); метод, но я не знаю, что в нем набирать спасибо заранее

public class SetTimeActivity extends AppCompatActivity {
    Button set_btn ;
    int min  ;
    EditText setTimerMenu_et;
    TextView tv_display ;
    DevicePolicyManager devicePolicyManager;
    ComponentName componentName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set_time);
        set_btn = (Button)findViewById(R.id.set_btn);
        setTimerMenu_et = (EditText)findViewById(R.id.setTimerMenu_et);

    tv_display = (TextView)findViewById(R.id.tv_display);
    devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    componentName = new ComponentName(SetTimeActivity.this , Controller.class);

    //-------------------------Clicking SET button---------------------------------
    set_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String text = setTimerMenu_et.getText().toString();
            if (!text.equalsIgnoreCase(""));
            int toMin = Integer.valueOf(text);
              min = toMin*60000;


            tv_display.setText("The Phone will lock after: " + text + " minute");
            CountDownTimer countDownTimer = new CountDownTimer(min,10000) {
                @Override
                public void onTick(long ms) {

                }

                @Override
                public void onFinish() {//when the timer end the phone will lock
                    devicePolicyManager.lockNow();
                }
            }.start();

        }
    });
}

} `

почему метка javascript ??

Lucifer 29.03.2018 10:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
86
3

Ответы 3

Код таймера обратного отсчета можно записать в сервисе. В MainActivity используйте широковещательный приемник для приема трансляций от Сервиса.

Вместо того, чтобы объявлять CountDownTimer как локальную переменную, объявите его как глобальную переменную и сделайте static

static CountDownTimer countDownTimer;

Надеюсь, что это работает.

Ваш дизайн неправильный. Компонент действия не должен существовать после уничтожения действия.

Лучшим вариантом было бы использовать AlarmManager. Запланируйте будильник, и вы получите обратный вызов получателю, о котором вы упомянули в ожидающем намерении.

https://developer.android.com/training/scheduling/alarms.html

Android: как использовать AlarmManager

или, как упоминал jay2109, вы также можете запустить службу, которая будет управлять CountDownTimer и использовать ее для трансляции событий, таких как onTick или onFinished, если вы хотите. (Примечание: лучше всего подключать и отключать широковещательный приемник в ваших действиях onPause и onResume. Вы можете использовать Notification, если хотите, чтобы пользователь знал, что ваше приложение что-то сделало)

https://developer.android.com/training/run-background-service/create-service.html

отправить трансляцию из службы в действие?

Другие вопросы по теме