Android中的自动注销用户

时间:2016-12-27 03:49:48

标签: android

我看过几个例子,但我无法弄清楚我做错了什么。

Auto logout after 15 minutes due to inactivity in android

在查看该示例后,我创建了一个扩展Service的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.timer.cancel();

我用if语句包围它,检查它是否为空,但没有任何反应,不确定我应该做什么。

1 个答案:

答案 0 :(得分:0)

  

由于LogoutService.timer.cancel();

而获得空指针异常

由于LogoutService扩展了Service类,但没有使用startService方法启动它,因此未调用onCreate方法且timernull

请执行以下操作:

  1. 使用startServicestopService方法启动/停止服务

  2. 取消服务的onDestory()中的计时器。

  3. LogoutService

  4. 中添加AndroidManifest.xml课程作为服务