Привет, я новичок в 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 [JS]](https://i.imgur.com/WsjO6zJb.png)


Код таймера обратного отсчета можно записать в сервисе. В 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
почему метка
javascript??