我知道这个问题有几个答案,但它对我不起作用,目前我的代码是:
public class LogoutService extends Service {
public static CountDownTimer timer;
@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");
// Code for Logout
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();
LogoutService.timer.start();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
LogoutService.timer.cancel();
}
但我得到一个“无法恢复活动java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.os.CountDownTimer android.os.CountDownTimer.start()'”当我尝试启动时我的任何包含此代码的活动。我的应用程序不是太复杂,它完全脱机,所以没有Web服务调用或任何东西,我只需要在x分钟后返回我的登录活动。有人有什么想法吗?
以下是我使用的那个:Auto logout after X minutes, Android和http://androidjug.blogspot.com/2015/10/auto-logout-after-15-minutes-due-to.html
答案 0 :(得分:0)
您没有启动该服务,因此您没有分配计时器。真的,你不应该使用静态。