2016-10-02 3 views
0

매 초마다 새 데이터 (네트워크에서)를 확인해야하는 UWP 앱이 있습니다. 새로운 async 스레드를 시작하여이 작업을 수행합니다. Windows Phone에서 앱을 최소화하거나 탐색 할 수도 있습니다. 그러면 앱이 일시 중지됩니다.앱에서 비동기 루프 다시 시작

사용자가 다시 앱으로 돌아갈 때 루프를 복원하려면 어떻게해야합니까? (여전히 열려있는 것처럼 보입니다 (동일한 Page))? 이 작업은 다시 실행시 Page으로 다시 이동하거나 루프를 복원하여 루프를 복원하여 수행 할 수 있습니다. 그렇게하는 가장 쉬운 방법은 무엇입니까?

답변

0

일반적으로 앱이 일시 중지 된 경우, 작업을 취소하지 않으면 OS가이를 수행합니다. 따라서 작업 재개를위한 진행 상황을 저장하면서 작업에 적절한 신호를 보낼 것을 권장합니다.

그러나 UWP에는 ExtendedExecution과 같은 것이 있습니다. 앱이 백그라운드에서 최대 10 분 동안 실행될 수 있어야합니다 (배터리 구동 기기의 제한 사항임을 알고있는 한 -이 문제에 대해서는 100 % 확신 할 수 없습니다. 물론 다양한 시나리오에서 변경 될 수 있습니다.)

그럼에도 불구하고 몇 초 간격으로 변경 사항을 확인하는 것은 좋지 않을 수 있습니다. 어쩌면 디자인을 조금 변경하고 배경 처리 용으로 설계된 BackgroundTasks을 사용할 수 있습니다.

대부분의 앱 상태에 대한 정보는 at MSDN입니다.

+0

감사하지만 문제는 작업을 다시 시작하는 _how_입니다. 앱에 포커스가있을 때만 실행해야하지만 포커스가 복원되면 즉시 새로 고침해야합니다. – Alexej

+0

@Alexej 작업이 취소되면 다시 시작할 수 없습니다. 앱이 일시 중지되지 않았다면 포커스를 잃어 버리기 전에 모든 것이 작동해야합니다. 앱에서 백그라운드 이벤트를 떠나는/시작하는 중 일부 작업을 수행하는 경우입니다. – Romasz

+0

'Task'를 강제로 다시 시작할 수 있습니까? 따라서 앱이 데스크톱과 모바일에 초점을 잃을 때마다 'OnNavigatedTo'메소드 등에서 '작업'이 시작된 '페이지'로 다시 이동합니다. – Alexej