Я создаю собственное приложение для Android, где я хочу, чтобы пользователь автоматически выходил из системы (вид тайм-аута сеанса) после периода бездействия, говорят 5 минут.
Это автономное приложение, и в приложении есть несколько экранов. Я не поддерживаю сеанс пользователя с сервером.
PS: Я нашел возможное решение для написания события тайм-аута для Android. Но это подходит только для одного приложения Activity. Может ли кто-нибудь предложить подобное решение для многозадачного приложения?
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(Constants.TAG, "Service Started");
}
public void onFinish() {
Log.v(Constants.TAG, "Call Logout by Service");
// Code for Logout
stopSelf();
}
};
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
And then Add the below code in every activity.
@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();
}
Итак, в ответ на ссылку, которую вы опубликовали, почему бы не следовать этому подходу, а создайте абстрактную базовую деятельность, чтобы распространить все ваши другие действия. Таким образом, вы добавляете тайм-аут для каждого вида деятельности, но ваша базовая деятельность будет справляться с этим, ваши дочерние действия не обязательно будут знать, что происходит.