2011-12-27 3 views
0

현재 라이브 타일 일정을 업데이트하는 Windows Phone 7 응용 프로그램이 있습니다.업그레이드 후 라이브 타일 일정을 중지하는 방법

새로운 버전의 앱은 백그라운드 작업을 사용하여 타일을 업데이트합니다.

그러나 휴대 전화에서 앱을 업그레이드 한 후 타일이 이미 주 타일에서 실행 중이면 업데이트를 중지하지 않습니다.

실행중인 타일 일정을 중지해야합니다.

새로운 일정을 생성하고 작동하지 않습니다 중지 :

ShellTile mainTile = ShellTile.ActiveTiles.FirstOrDefault(); 
t = new ShellTileSchedule(mainTile) 
        { 
         MaxUpdateCount = 1, 
         Recurrence = UpdateRecurrence.Onetime, 
         StartTime = DateTime.Now, 
         RemoteImageUri = new Uri("http://mysite.com/livetile.png") 
        }; 
t.Start(); 
t.Stop(); 

답변

2

이후에만 할 수 있습니다

var t = new ShellTileSchedule() 
       { 
        MaxUpdateCount = 1, 
        Recurrence = UpdateRecurrence.Onetime, 
        StartTime = DateTime.Now, 
        RemoteImageUri = new Uri("http://mysite.com/livetile.png"), 
       }; 
t.Start(); 
t.Stop(); 

가 작동하지 않는 액티브 타일의 주요 타일에 새 일정 만들기 응용 프로그램 당 하나의 ShellTileSchedule을 가지고 있고, 새 응용 프로그램을 만들고, 시작한 다음 중지하고, 이전 응용 프로그램을 제거하고 방금 만든 응용 프로그램을 중지해야합니다.

(왜 당신이 요청하기 전에 시도하지 않았다?) 모든

+0

두 가지 이유가 있습니다. MSDN에서 쉽게 찾을 수 없으며 해킹을 사용하고 싶지 않기 때문에 정답이있는 SO 페이지가 있어야한다고 생각했습니다. 올바른 방법을 사용했는지 확인하고 싶었습니다. – Doug

+0

MSDN은 분명히있을 수 있음을 분명히합니다. * 하나 * 페이지 당'ShellTileSchedule', 그래서 :-) –

+0

새로운 것을 생성하고 멈추는이 솔루션은 작동하지 않습니다 ...? – Doug

1

먼저,이 문제가 실제로 시장에 배포 된 응용 프로그램에 발생? (즉, 업데이트를 배포한다는 의미일까요?) 그렇지 않은 경우 실제 개발자 앱을 휴대 전화에 배포하는 방식과 관련 될 수 있습니다.

다른 제안 사항이 있습니다. 아직 테스트하지 않았습니다 : - 앱에서 제거를 시도 했습니까? ShellTileSchedule이 제거되면 작동을 멈출 수 있습니다. 이것은 아마 시장을 통해이 응용 프로그램을 제출할 때 자동으로 발생하지만, 테스트를 위해 그것을 줄 수 있습니다. - ShellTileScheduel이 실패하면 취소 할 수 있습니다. 가능한 경우 RemoteImageUri에있는 PNG 파일을 제거 할 수 있습니까? 또는 깨진 데이터로 채워서 ShellTileSchedule을 엉망으로 만듭니다. 나는 이것이 예쁘지 않다는 것을 안다. 그러나 그것은 효과가있을 것이다. - ShellTileSchedule을 무기한 반복하지 않는 것으로 교체해 보셨습니까? 그냥 실행 (마지막으로 한 번)하고 마친다.

행운을 비네. 수정 한 경우 알려 주시기 바랍니다.

+0

감사합니다. Tom. 슬프게도 나는 라이브 타일을 "망칠"수는 없지만 (시장에서 새로운 버전으로 업데이트하지 않은 모든 사람들을 깨뜨릴 것입니다.) 나는 라이브 타일 핸들러를 버전 관리하여 미래를 고치고 있습니다.). 나는 또한 행운없이 (질문의 코드에서) 하나의 일정 시작 시도했다. 그러므로 나의 좌절감. "깨끗한 재 구축"을 실행하지 않은 경우 Visual Studio에서 배포시 수행하는 매니페스트 "업데이트"가있는 것 같습니다. 이는 업데이트를 테스트하는 방법입니다. Clean Rebuild를 수행 한 후 각각을 순서대로 설치하십시오. – Doug

+1

흠, 내가 생각할 수있는 두 가지 옵션이 있습니다. - 사용자가 처음으로 업데이트 된 버전을 실행 한 다음 원래의 라이브 타일을 끊을 때 추적합니다. - 업데이트가 게시되면 모든 "오래된"타일을 "업데이트하십시오 "메시지를 받고 하루 정도 지나면 휴식을 취하십시오.사용자가 업데이트되고 백그라운드 에이전트가 실행될 때까지 메시지가 계속 표시됩니다. 두 가지 모두 이상적은 아니지만 불행히도 지금 당장 생각할 수있는 최선입니다. 우리에게 계속 알려줘! –

관련 문제