2017-01-08 53 views
1

我知道有几个回答这个问题,但它不是为我工作,目前我的代码是:Android系统自动注销应用

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, Androidhttp://androidjug.blogspot.com/2015/10/auto-logout-after-15-minutes-due-to.html

+0

首先开始您的服务 – Rahul

+0

如何开始服务和地点? – Spider

+0

https://developer.android.com/guide/components/services.html – Rahul

回答

0

您还没有启动该服务,这样你就不会分配计时器。真的,你不应该为此使用静态。

+0

我开始在我的onCreate服务,但我仍然得到同样的错误。 – Spider