2013-07-18 2 views
1

나는 이벤트를 받고 이벤트가 수신되면 응용 프로그램 데이터베이스와 일부 UI 요소를 업데이트하는 수신기를 구현해야하는 Android 응용 프로그램에서 작업하고 있습니다. 리스너는 응용 프로그램이 실행되는 동안 항상 실행해야합니다.장기 실행 이벤트 리스너를 구현하는 가장 좋은 방법은 무엇입니까

여러분이 저에게 최선의 방법을 구현하는 방법에 대한 제안을 해주실 수 있습니까? 모범 사례?

추신 : 나는이 이벤트 리스너를 서비스에 통합하려고 생각하고있었습니다. 어떻게 생각해 ?

+0

귀하의 이벤트에 따라 달라집니다 귀하의 활동은 전체 시간을 볼 수 있어야합니다 경우 – njzk2

답변

2

동일한 서비스를 사용하려는 경우 서비스의 onStartCommand() 내부에서 반환 값으로 START_STICKY를 추가하십시오. 안드로이드 OS가 자원 부족으로 그것을 죽이면 이것은 서비스를 다시 만들 것이다. 가장 좋은 방법은 BroadcastReceivers를 사용하여 Manifest.xml 파일에 등록하는 것입니다. 이 모든 시간을 실행하고 운영 체제에 의해 살해되지 않습니다

+0

고마워,이 정확하게 구현 방법입니다 :) –

1

BroadcastReceiver에서 확장하는 클래스를 사용해야합니다. 응용 프로그램 데이터베이스를 업데이트하는 onReceive 메서드를 재정의합니다.

그런 다음 AlarmManager 클래스를 사용하여 이벤트를 예약해야합니다. 스케줄링에는 set 메소드를 사용하는 하나의 시간 이벤트, setRepeating 메소드를 사용하는 반복 이벤트 및 setInexactRepeating이 있습니다.

여기 좋은 튜토리얼 : Refer this links

당신이 당신의 응용 프로그램이 실행되지 않는 경우에도 실행 청취자있을 것이다이 방법을 사용하여, 당신은 당신의 모바일이 작업 대기 모드로의 경우에도 이벤트를 수신 할 수있을 것입니다. 이것은 서비스로 할 수없는 것입니다.

는 매니페스트 파일 ( <application> 전) 다음 행으로 추가하는 것을 잊지 마세요 알람 관리기를 사용하여 모바일을 깨우려면 :이 도움이

<uses-permission android:name="android.permission.WAKE_LOCK"/> 

희망을.

관련 문제