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

앱이 실행중일때만 서비스나 리시버를 작동하게 하려면 어떻게해야하나요?

0 추천
<receiver android:name ="kr.co.kkk.ggg.ConnectionReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

위와 같이 AndroidManifest.xml에 추가하고 네트워크 끊기면 팝업뜨는 소스를 
넣었더니 앱이 실행중이지 않을때도 서비스가 돌면서 네트워크 체킹을 하는군요. 
저는 앱이 실행중일때만 항상 네트워크를 감지해서 잠시라도 끊어지면 신호를 
주게끔 하려는데요. 혹시 앱 실행중일때만 리시버를 실행시킬 수가 있는지요? 
아니면 다른 방법을 써야하는건지 궁금합니다. 즉 앱이 실행되고 있을때는 
리시버처럼 늘 네트워크 체크를 감지하는 로직이 필요하구요. 제 앱이 종료되면 
네트워크 체킹 작동은 멈췄으면 합니다. 앱이 종료되었는데도 네트워크가 끊겼다고 
자꾸 팝업이 떠서요....

초보개발자DJ (180 포인트) 님이 2016년 8월 31일 질문
BroadCastRecevier를 onResume 이벤트에 등록하고 onPause에서 등록해제를 하시던가
onStart에 등록하시고 onStop에서 해제하세요.
onCreate와 onDestory는 권장하지 않습니다. 안드로이드가 메모리 상황에 따라 특정 앱을 죽이거나 할 수 있기 때문에 onDestory가 호출되지 않는 상황이 생길 수도 있습니다.

1개의 답변

0 추천
해당 xml 지우시고 어플 첫실행 페이지에다가 registerreceiver 넣어주세요.
sadeva (21,550 포인트) 님이 2016년 8월 31일 답변
...