휴대 전화 2 대에 동일한 앱을 사용하고 있습니다. onCreate()에서 포트를 수신하는 서비스를 시작합니다. phone1의 버튼을 클릭하면 Phone2에 파일의 HTTP Post가 보내지고 통신은 계속 진행됩니다 (전화기 2는 처음 포트에서 청취 함).
음, 전화 번호 2에 배터리가 부족하기 때문에 phone2의 소유자가 초승달 모양으로 나를 공격하게 만드는 것 같습니다.
즉, HTTP 데몬은 WakeLock
(아마도 WifiLock
, 대부분의 모바일 데이터 연결에서 작동하지 않으므로)을 획득하고 출시하는 서비스에 있어야합니다.
WakefulIntentService
은 특정 작업을 완료하기 위해 잠시 동안 WakeLock
을 유지해야하는 합리적인 시나리오를 위해 설계 되었기 때문에 여기서는 유용하지 않습니다. 귀하의 경우, 작업을 완료해야 할 때가 언제인지 모르므로 귀하는 WakeLock
을 무기한 보관해야합니다.
어디서 코드를 통합 할 것인지 잘 모르겠습니다.
아마도 서비스에서. 서비스의 onCreate()
에 WakeLock
을 획득하고 서비스의 onDestroy()
에서 해제하십시오. 초승달과 관련된 사망을 피하려면이 서비스가 실행되는 시점을 사용자가 정확히 제어 할 수 있어야하므로이 WakeLock
이 시행되는 시점을 충분히 제어 할 수 있습니다.
"소켓을 사용하여 서로 통신하고 (약 1-2 분이 걸릴 수 있습니다) 스크립트를 실행하고 HTTP 포스트를 사용하여 파일을 교환합니다." - 그리고이 작업을위한 방아쇠 메커니즘은 무엇입니까? – CommonsWare
2 개의 휴대 전화에 동일한 앱을 사용하고 있습니다. onCreate()에서 포트를 수신하는 서비스를 시작합니다. phone1의 버튼을 클릭하면 Phone2에 파일의 HTTP Post가 전송되고 통신은 계속 진행됩니다 (전화기 2는 처음 포트에서 청취 함). @CommonsWare – user1741274