Автоматический выход пользователей в Android

Я посмотрел несколько примеров, но не могу понять, что я делаю неправильно.

Автоматический выход через 15 минут из-за бездействия в android

После просмотра этого примера я создал класс LogoutService, который расширяет службу. Кроме того, должен ли я по-прежнему иметь намерение, которое вызывает мою активность входа? Что-то вроде этого:

Intent intent = new Intent(getBaseContext(), LoginActivity.class);
startActivity(intent);

Мой Класс LogoutService

public class LogoutService extends Service {
public static CountDownTimer timer;
private final String TAG="Service";
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        timer = new CountDownTimer(1 * 60 * 1000, 1000) {
            public void onTick(long millisUntilFinished) {
                //Some code
                Log.v(TAG, "Service Started");
            }

            public void onFinish() {
                Log.v(TAG, "Call Logout by Service");
                // TODO should I create an Intent
                // my Login method here?
                stopSelf();
            }
        };
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

И поместите это во все мои другие классы:

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    try {
        LogoutService.timer.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
    LogoutService.timer.cancel();
}

Но я продолжаю получать исключение нулевого указателя из-за
LogoutService.таймер.отмена();

Я окружил его инструкцией if, которая проверяет, если это null, но тогда ничего не происходит, не уверен, что я должен делать.

1 ответ

  1. получение исключения указателя null из-за LogoutService.таймер.отмена();

    Потому LogoutServiceчто расширяет Serviceкласс, но не запускает его с помощью startServiceметода, поэтому onCreateметод не вызывается и timerесть null.

    Сделайте следующее :

    1. Использование startServiceи методы запуска/остановки службыstopService

    2. отменить таймер в onDestory()сервисе.

    3. Добавить LogoutServiceкласс Как службу в AndroidManifest.xml