달부
172
2020-01-23 09:41:31 작성 2020-01-23 09:41:52 수정됨
3
304

안드로이드 앱 백그라운드로 넘어갈시 일정시간 후 자동으로 종료하고 싶습니다


핀 로그인이 있는 안드로이드 앱을 개발 중입니다. 

onPause나 onStop시 몇분 후 앱을 종료시켜 다시 로그인이 필요하도록 처리하고 싶습니다.

(은행앱의 5분 로그인같은 개념)

매 액티비티마다 Runnable postDelayed로 onStop onPause시 5분후 finishAffinity() 를 호출하고 onResume시 Runnable이 담긴 핸들러에서 removeCallbacks를 호출해서 취소하고 있습니다.


문제는 이렇게 처리를 하니 백그라운드에서 앱이 계속 돌아가서 백그라운드에서 배터리를 사용하는 앱의 경고 알림이 뜹니다. 백그라운드로 넘어갔는데도 Runnable로 시간을 세면서 계속 처리를 해서 그런것 같은데 비슷한 기능이 있는 다른앱들 에서는 한번도 이런 경고를 본적이 없거든요. 혹시 일반적으로 이런 기능은 어떻게 구현하는지 제가 검색을 잘 못해서 안나오는건지 검색어라도 한번 알려주시면 감사하겠습니다.


0
0
  • 답변 3

  • 너부리
    822
    2020-01-23 15:55:13

    AlarmManger를 이용하시든가 Android Time Ticker Receiver를 이용하시면 될 것 같습니다.

    1
  • 에러뜨지마라ㅠ
    406
    2020-01-23 19:19:05

    Onstop일 때 핸들러를 사용하면 될거같은데요.

    그리고 다시 들어올때 Onstart에 일정시간이 지나지 않을 경우를 대비해 removecallback도 넣어주고요

    1
  • 달부
    172
    2020-01-29 15:17:21

    두분 다 답변 감사합니다 AlarmManager가 괜찮은 방법인것 같습니다

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.