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

안드로이드 자동 로그아웃 구현 로직에 관한 팁좀 주세요~ㅎ

0 추천
안녕하세요. 초보 개발자입니다..ㅎ

장시간 사용하지 않을 경우 자동 로그아웃(로그인 페이지로 이동) 하는 것에 관하여 로직을 생각해봤는데요..

 

1. 모든 페이지의 onresume()에서 timer 발동.

2. 어떠한 액션(click, swipe, etc)이 들어갈때마다 timer를 0으로 변환

3. onpause()에서는 timer를 expire 시키고 (타 페이지의 onresume에서 다시 timer발동).

 

이렇게 생각해보았습니다. 하지만 이렇게 될 경우 모든 페이지에 대해서 timer에 관한 소스를 넣어줘야해서...

최상단 부모 클래스에다가 만들어도 사실상 각 페이지에 소스가 들어가는거랑 차이가 없는 것 같다고 생각했습니다.,..

 

혹시 좋은 방법이 없을까요? 감사합니다!!ㅎ
행인28 (480 포인트) 님이 2016년 5월 25일 질문
Activity의 onUserInteraction이벤트에서 최근에 유저 액션이 발생한 시간과 현재 시간의 차를 구해서 일정값 이상이 되면 로그아웃 되도록 구현할 수는 있습니다.

2개의 답변

0 추천
장시간 사용하지 않을 경우라고하는경우를 어플이 종료됬을때를 말하시는거라면 어플종료되셨을때 서비스 발생시키셔서 작성자님이 말씀하신 코드를 넣어서 작업해도될거같습니다.
sadeva (21,550 포인트) 님이 2016년 5월 25일 답변
음.. 비단 어플이 종료되는경우만이 아니라 예를들어
1. 화면을 켜놓고 1시간동안 어떠한 action을 취하지 않을 경우.
2. 로그인 이후, lock키를 눌러 잠금을 한 후 1시간이 지날 경우.
3. 마찬가지로 홈키를 누른 후(destroy 발생) 1시간이 지날 경우.

몇가지 예를 적어보았습니다~ㅎ  이러한 경우입니다 ㅎ
0 추천
서비스에서 처리하시면 되겠네요.

아니면 참조할 Application을 하나 만들어 거기서 처리하셔도 됩니다.

 

중요한 앱이 아니었기에, 메인단에서 타이머를 돌렸고 액션이 있을 경우 브로드캐스트날려

메인에서 수신하여 타이머를 초기화 하는 방식으로 진행했던 적이 있습니다.

 

서비스에서 처리하는게 가장 이상적인 접근이 아닐까 싶네요.
개발자초심 (21,220 포인트) 님이 2016년 5월 25일 답변
음...제가 잘 이해를 못해서 그러는데... 서비스에서 처리한다는 말씀이 어떤 말씀이죠ㅠ? 어떠한 검색어를 찾으면 제가 좀 알아볼 수 있을까요..?
...