2014-12-16 1 views
0

제 질문은 다소 간단하지만 복잡한 대답이 올 수도 있습니다.AlarmManager와 db 및 FTP 연결 서비스. 어느 것을 사용 하는가?

저는 새로운 업데이트를 위해 온라인 mysql db (웹 사이트의 PHP 스크립트를 통해)를 확인하는 응용 프로그램을 만들고 있습니다. 때로는이 업데이 트는 응용 프로그램에 FTP 서버를 다운로드해야한다고 알려줍니다.

앱은 부팅 할 때마다 15 분마다 업데이트를 확인해야합니다.

웹에서 읽었습니다 서비스 또는 AlarmManager를 사용해야하지만 어떤 것이 더 좋을지는 잘 모릅니다.

또한 AlarmManager가 장치를 "깨우려고"한다고 말하는 많은 페이지를 읽었지만 이것이 실제로 의미하는 것과 서비스에서 왜 다른지를 이해하지 못했습니다. 이것은 전화가 꺼져 있으면 켜거나 화면에서 켜는 것을 의미합니까?

휴대 전화가 켜져있을 때 백그라운드에서 작업을 수행하기 만하면됩니다. 화면을 켜거나 기기의 전원을 켜기 위해 휴대 전화가 필요하지 않습니다.

답변

1

웹에서 읽었습니다 서비스 또는 AlarmManager를 사용해야하지만 어느 것이 더 좋을지는 잘 모릅니다.

"또는"이 아닙니다. 그것은 "and"입니다. Service으로 작업을 시작하려면 AlarmManager을 사용해야합니다.

내가 (알람 관리기 장치를 "일어나"할 말 많은 페이지를 읽었습니다하지만이 정말

AlarmManager_WAKEUP 이벤트 유형을 무엇을 의미하는지 이해하는 데 실패했습니다 예를 들어, ELAPSED_REALTIME_WAKEUP)는 장치를 절전 모드에서 해제합니다. WakefulBroadcastReceiverIntentService과 함께 사용하면 장치가 일반적으로 잠자기 상태 (화면 및 절전 상태의 CPU) 일지라도 주기적으로 작업 할 수 있습니다.

휴대 전화가 켜져있을 때 백그라운드에서 작업을 수행하기 만하면 화면이 켜지거나 기기가 켜지지 않아도됩니다.

그럼 당신은 비 _WAKEUP 알람 유형 (예를 들어, ELAPSED_REALTIME)와 AlarmManager를 사용할 수 있습니다. 아직 작업 중에 문제가 될 수 있으므로 기기가 작업 중에 잠들지 않도록 WakefulBroadcastReceiverIntentService을 사용하는 것이 좋습니다.

+0

지금까지 AlarmManager를 사용하여 15 분마다 이벤트를 만들려고했는데 xxx.com/xxx.php를 연 상태에서 AsynkTask를 시작한 다음 필요한 경우 동일한 AsynkTask에서 FTP 연결을 열었습니다. 이게 나쁜 생각이라는 걸 이해하기 시작했는데 방해가 될 수 있니? –

+1

@LucianoStupenengo : "AsynkTask를 해고 한 AlarmManager가 있습니다"- 그건 불가능합니다. 'AlarmManager'는 활동을 시작하거나, 서비스를 시작하거나, 방송을 보낼'PendingIntent'를 호출합니다. 그것은'AsyncTask'를 직접 실행할 수 없습니다. "중단 될 수 있니?" - 장치가 잠들거나 프로세스를 종료 할 수 있습니다. 'IntentService '와 같은'Service'를 사용하면 프로세스 종료 시나리오를 피할 수 있습니다. 'WakefulBroadcastReceiver'를 사용하면 장비가 잠들 때 도움이됩니다. – CommonsWare

+0

자, 자네가 나를 올바른 길로 인도했다고 생각해.나는 AlarmManager를 가지고 있고 WakefullBroadcasReceiver를 사용하는 방법을 읽고있다. 그리고 나서 내가 undestand 한 후에 IntentService를 사용하여 나의 PHP와 FTP를 열 것이다. –