2017-01-08 50 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