已創建會話註銷功能,可以在以下情況下發生不活動註銷: 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