已创建会话注销功能,可以在以下情况下发生不活动注销: 1.)存在一段不活动时间段 2.)应用程序被推入后台,当用户恢复应用程序时,活动仍会执行超时注销/活动 3.)屏幕已超时并已进入屏幕保护程序模式当用户完全退出(销毁)应用程序时,是否可以实现会话注销?
但是,我想知道是否有可能,当用户完全终止应用程序退出/推入应用程序进入背景。如果可能的话,有什么可能的实现?
这里是代码片段:
(功能在非活动期间拨打):
@Override
public void onStop(){
super.onStop();
//Timer needs to be stopped when user manually pressed BACK button
//Prevent a logout when user press BACK button to stop each activity destroyed from being logged
startTime = System.currentTimeMillis();
Log.i("RootActivity:onResume()","******startTime=******"+startTime);
stopDisconnectTimer();
}
//METHOD USED FOR INACTIVITY LOGOUT
//EMPLOY THE HANDLER METHOD FOR OCCURANCE OF FUTURE FUNCTION: DISCONNECTHANDLER
public static class MyBaseActivity extends Activity {
public static Handler disconnectHandler = new Handler(){
public void handleMessage(Message msg){
}
};
}
private Runnable disconnectCallback= new Runnable(){
@Override
public void run(){
//Get the Resume Time & get difference in Time for Logout
long endTime= System.currentTimeMillis();
Log.i("RootActivity:onResume()","******endTime=******"+endTime);
long diff = endTime - startTime;
long secInt = (diff /1000); //conversion of milliseconds into seconds
Log.i("RootActivity:onRun()","******sectInt=******"+secInt);
if (secInt > Inactivity_Timeout){// SET EXIT SCREEN INTERVAL LOGOUT
IdleLogout();
}
}
};
//METHOD TO CALL ON RESETDISCONNECT WHEN USER ACTIVITY RESUMES
public void resetDisconnectTimer(){
MyBaseActivity.disconnectHandler.removeCallbacks(disconnectCallback);
MyBaseActivity.disconnectHandler.postDelayed(disconnectCallback, Inactivity_Timeout);
}
//METHOD TO CALL ON STOPDISCONNECT WHEN USER PRESS BACK BUTTON
public void stopDisconnectTimer(){
MyBaseActivity.disconnectHandler.removeCallbacks(disconnectCallback);
}
感谢队友!我傻不想到 – 2014-09-25 08:03:17
的OnDestroy(中)的会为每个活动,也为整个应用程序。我如何让onDestroy只适用于整个应用程序,而不仅仅是活动? – 2014-09-26 02:39:49