Таймер выхода из 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,

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