마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Timer를 이용해서 자동로그아웃 기능 구현방법 문의드립니다.

+1 추천
타이머를 이용해서 자동로그아웃을 구현하려 합니다.

 

사용자가 자동로그아웃시간을 지정하는 기능은 없습니다.

 

즉, 사용자가 환경설정에서 1시간, 2시간등을 정하는 기능은 없는거죠.

 

3시간단위로 하려고 하고 있고........이건 상수로 만들어주면 될 듯 합니다.

 

그리고 onStop이 될 때 SharedPreference에 현재시간을 넣어주고, onResume될 때 현재시간과 이전시간(onStop에서 저장해준 현재시간이 되겠죠.)을 비교해서 상수보다 크면 로그아웃시키고, 아니면 유지시켜 놓으면 되는거겠죠?

 

그런데..이럴 경우 모든 액티비티에서 onResume상태와 onStop상태에 넣어야 하는 귀찮은 문제가 있는 듯 합니다.

(뭐, 물론 액티비티를 확장해서 공통액티비티를 하나 만들면 되긴 하지만요..)

 

메뉴쪽 액티비티는 절대 죽이지 않고 항상 살려놓는데 그냥 메뉴쪽에다가만 넣어도 될까요?

그리고 메뉴쪽 액티비티에만 넣을거면 onStop & onResume을 이용하지 않고 그냥 onCreate에서 TimerTask에 Logout기능을 하나 넣어서 3시간뒤에 자동실행되게 하면 될런지요.

 

보통 자동로그아웃 기능을 구현하는 분들은 모든 액티비티에 다 처리해주는건지(or 확장 공통액티비티를 하나 만드는지)

 

아니면 항상 살아있는 액티비티에서 처리해주는지 궁금합니다.

 

전자가 좋은 방법이겠지만 사용자가 어차피 지정할 수 없기에 하드하게 해줄까......고민중입니다.
BJLOVE (250 포인트) 님이 2013년 2월 20일 질문

3개의 답변

0 추천
부모 액티비티 클래스에 onStop() 함수에 해당 기능을 써주시고 부모액티비티를 상속 받게 해주시면 더 편해지지 않을까 싶은데요 ~_~
갈무리 (12,430 포인트) 님이 2013년 2월 20일 답변
그 부모 액티비티라는게 그러니까 Activity를 확장한다는 이야기 아닌가요?
위에 언급해놓은 방식 중에 하나이구요..
"물론 액티비티를 확장해서 공통액티비티를 하나 만들면 되긴 하지만요."

그리고 다른 액티비티에서는 저 공통액티비티를 이용하는겁니다.

단지 혼자 개발한게 아니라서 벌써 공통액티비티를 만들어놨지만 어떤사람은 공통액티비티를 안쓰고 어떤 사람은 쓰고......그렇습니다.
0 추천
Service를 이용해서 구현하면 될꺼 같은데요 'ㅁ '
페어리 (12,270 포인트) 님이 2013년 2월 20일 답변
0 추천

Application을 이용해보시기 바랍니다.

 

Base Activty를 만드는것이 쉬우나, 다른분들이 사용하지 않는다고 한다면 무용지물이고,

Service로 만들면, 서비스가 죽는 케이스가 있으므로, 반드시 일어나야 하는 작업에는 어울리지 않아 보입니다.

 

로딩시에 간단하게 체크하는 것이므로,

http://developer.android.com/reference/android/app/Application.html

을 참고해 보시기 바랍니다.

^^

컨버전스 (180 포인트) 님이 2013년 2월 20일 답변
...