2016-09-03 4 views
2

우리는 사용자가 구독 기반으로 사용하는 응용 프로그램을 설계하고 있습니다. 사용자가 특정 기간 동안 비용을 지불하면 해당 기간 동안 유효 한 영수증이 Google 서버에서 발행됩니다. 이 응용 프로그램은 "오프라인"으로 사용되도록 설계되었으므로 인터넷에 연결되어 서버에서 영수증을 가져옵니다.주기적으로 백그라운드에서 서비스를 실행하십시오.

"오프라인"모드 인 경우 앱에서 사용자가 다시 지불해야 할 때까지 - 유료 기간 # 일 동안 대기합니다. 이를 구현하는 데 문제가 있습니다.

우리는 항상 항상 실행중인 백그라운드 서비스를 사용하려고했습니다. 그러나 https://stackoverflow.com/a/2682130/5753416, http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/을 읽은 후 AlarmManger를 사용하여 정기적 인 알람을 예약하여 지불을 확인했습니다.

사용자가 시간/날짜를 변경하면 알람에 문제가 발생합니다. 우리는 Intent.ACTION_TIME_CHANGED 및 Intent.ACTION_DATE_CHANGED 브로드 캐스트를 듣고 있지만 /날짜를 설정할 때 브로드 캐스트이 아닙니다.

제 질문은 비슷한 기능을 구현하는 올바른 방법입니다. 모든 조언을 부탁드립니다.

편집 당신이해야 할 일을 하나 개의 솔루션이 있습니다

issues with the broadcast

ASOP bug issue

+0

코드를 공유해주세요. –

+1

어느 부분이 필요합니까? 이 기능은 "한 곳에서"구현되지 않았기 때문에이 질문을드립니다. 하지만 우리는 방송을 청취 할 때 표준적인 것을 사용했습니다. – fuadj

+0

Intent.ACTION_TIME_CHANGED 및 Intent.ACTION_DATE_CHANGED 방송을 청취중인 출처 및 부분 –

답변

0

당신이 몇 시간 동안 알람을 예약 할 수 있도록 같은 시간이나 따라 할 수 확인 전화까지 시간 당신의 주파수에. 따라서 사용자가 지불해야하는 휴대 전화 가동 시간 + 기간을 확인한 후 서브를 취소해야합니다. 확인할 필요가있는 유일한 추가 사항은 일단 net이 서비스에 액세스하기 위해 연결되면 전화가 다시 시작되는지 여부입니다.

+0

내가 알람에 직면 한 문제는 시계를 "되감기"하면 작동하지 않는다는 것입니다. 예 : 현재 시간이 8이고 9시에 1 시간 후에 알람이 울리도록 설정 한 경우 사용자가 시간을 5로 다시 설정하면 알람이 4 시간 동안 실행되지 않습니다. 이것은 날짜가 되감기 때만 악화됩니다. 그래서 TIME_SET 및 DATE_SET 방송을 청취하려고합니다. 그러나 시계가 과거로 되돌아 가면 작동하지 않습니다. 나는 그 문제에 관한 나의 질문에 링크를 포함시켰다. – fuadj

관련 문제