Таймер выхода из Android
Я сделал приложение. Я хочу автоматически выйти из приложения после определенного периода времени, когда пользователь выходит из приложения или приложения, работающего в фоновом режиме. Я создал таймер, но он не работает, когда приложение входит в onStop()
Таймер также становится остановленным. Что я должен сделать для этой проблемы?
2 ответа
Сделай все свои Activities
расширяет один BaseActivity
, Тогда в этом BaseActivity
объявить паузу Миллис параметром:
private long pausedMillis;
После этого переопределить onStop
метод:
@Override
protected void onStop() {
super.onStop();
pausedMillis = Calendar.getInstance().getTimeInMillis();
}
В конце концов переопределить onResume
метод:
@Override
public void onResume(){
super.onResume();
try {
long currentMillis = Calendar.getInstance().getTimeInMillis();
if ( !(this instanceof LoginActivity) && currentMillis - pausedMillis > 1000 * 60 * 3 ) {
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Toast.makeText(BaseActivity.this, getString(R.string.logout_string), Toast.LENGTH_LONG).show();
}
} catch (Exception e){
e.printStackTrace();
}
}
Вы выйдете из системы, если ваше приложение будет работать в фоновом режиме более 3 минут. Удачной кодировки:)
Вам необходимо создать службу для выхода из системы и использовать AlarmManager с PendingIntent, чтобы эта служба запускалась после определенного периода времени. Вот пример кода:
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent m_intent = new Intent(this, YourService.class);
PendingIntent pi = PendingIntent.getService(this, 2, m_intent, 0);
alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timePeriod, pi);
Введите код выхода в YourService
,