いくつかの例を見てきましたが、私が間違っていることを理解できません。Androidの自動ログアウトユーザー
Auto logout after 15 minutes due to inactivity in 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によるnullポインタ例外を取得しておきます。 timer.cancel();
私はそれがヌルであるかどうかをチェックするif文で囲みましたが、何も起こらず、何をすべきかわかりません。
にサービスとして
LogoutService
クラスを追加しますか? LogoutServiceクラスでは? また、なぜonDestroyではなくonDestroyですか? – Spider@Spider: 'LogoutService.timer.start();'と 'LogoutService.timer.cancel();'の代わりに –
それが何をするのか分かりません。だから、このような新しいメソッドを作成して呼び出すだけですか? public void startService(){ Logout.timer.start(); } – Spider