문제

사용자가 새 메시지가 대기하는지 확인하기 위해 웹 서비스를 "폴링"해야하는 응용 프로그램이 있습니다. 웹 서비스를 제어 할 수 없으므로 "푸시"메커니즘으로 전환 할 수 없으므로 사용할 수있는 내용을 확인하기 위해 x 초마다 요청을 받고 있습니다.

System.threading.timer를 사용하여 요청을 자주 자주 만들지 만 몇 가지 문제가 발생합니다. 가장 큰 것은 전화기가 "대기"모드로 전송 될 때 실행이 중지된다는 것입니다 (화면 꺼짐이지만 여전히 통화 및 이메일/TXT 알림을 얻을 수 있음).

나는 다른 배경 응용 프로그램처럼 행동하기를 정말로 원합니다. 배터리의 배수구가 너무 크지 않고 작동하도록하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

내 자신의 질문에 대답하는 것을 싫어하지만 나는 이것, 장치가 잠들었을 때에도 수행 할 수있었습니다. 완벽하게 작동하는 것 같습니다.

다른 팁

당신이 할 수있는 일은 없습니다, Afaik. 대기 모드는 프로세서를 중단하여 전원을 저장하기위한 것이며 프로세서가 실행되지 않으면 코드를 실행할 수있는 방법이 없습니다. 장치가 대기 모드로 들어가는 것을 방지하기 위해 응용 프로그램이 수행 할 수있는 일이 있지만 실제로는 전혀 권장되지 않습니다.

네. musigenesis가 어떻게 대답했는지와 마찬가지로 장치를 유지하고 실행하지 않으면 많은 일을 할 수 없습니다. 일부 전화가 "게임/앱 실행"을 알리는 방식과 유사하게 배터리가 사라지고 있습니다.

휴대 전화에서 인터페이스를 작성하여 문자 메시지를 활용하고 (여전히 작동하는지) 웹 서비스에 문자 메시지를 보내도록하는 것은 어떻습니까? 그게 가능할까요? 나는 그런 종류의 방법이 실행을 중단 할 수 있다고 생각하지만, 나는 그것이 생각이라고 생각합니까?

컴팩트 프레임 워크에 대해서는 잘 모르겠지만 Win32에는 대기에서 컴퓨터를 깨울 수있는 WaitableTimer가 있습니다. .NET에는 래퍼가 없으므로 기본 전화가 필요합니다.

웹 서비스를 수정할 수는 없지만 클라이언트와 원래 웹 서비스 사이에 두 번째 "섀도우"웹 서비스를 추가 할 수 있습니다. 섀도우 웹 서비스는 원래 웹 서비스를 폴링 한 다음 PDA에 찾은 모든 것을 "푸시"할 수 있습니다.

그래도 여전히 같은 문제가있을 수 있다고 생각합니다. 웹 서비스에서 "푸시"를 한 적이 없지만 클라이언트가 클라이언트의 메소드를 대표하는 웹 서비스 메소드를 초기 호출하여 웹 서비스가 매달려있는 웹 서비스 메소드를 초기 호출하도록하여 기본적으로 구현된다고 생각합니다. 웹 서비스가 무언가를 밀어야 할 때, 해당 위임을 호출합니다. 그 동안 클라이언트가 대기 모드로 들어간 경우 서버에서 대의원을 호출하려는 시도가 실패합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top