2012-08-23 30 views
1

我有一個應用程序有一個BG模塊,它被迫在測試目的每4分鐘運行一次,並且工作正常。一旦我啓動應用程序(首次啓動)並向服務器註冊,內容就會顯示出來,然後退出應用程序。該應用程序進入Application_Closing()狀態。我等了一會兒(比如說大約15分鐘),嘗試啓動應用程序,有時候會發生這樣的情況,在執行MainPage()構造函數後,應用程序被取消激活,並且在調試過程中以及從日誌中觀察到應用程序進入到Application_Deactivated()狀態。基本上,應用程序啓動,它仍然顯示啓動屏幕(自定義),它突然終止。所以,在我看完日誌之後,有一個問題困擾着我,也就是說,如果在BG任務完成其工作的同時啓動了一個應用程序,並且FG和BG任務之間會存在衝突導致應用程序停用?我也懷疑我必須在APp.xaml.cs類的Application_Deactivated()方法內部做更多的事情。這是守則。當WP7中的FG和BG同步發生衝突時會發生什麼?

private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
    { 
     Logger.log(TAG, "Application deactivated"); 
    } 
    // Code to execute when the application is closing (eg, user hit Back) 
    // This code will not execute when the application is deactivated 
    private void Application_Closing(object sender, ClosingEventArgs e) 
    { 
     if (appSession != null) 
     { 
      appSession.close(); 
     } 
     Logger.log(TAG, "Application closed"); 
    } 

//記錄: -

回答

1

從我從您的查詢瞭解,我可以因爲應用程序在BG線程它推出之前運行的結論是,它無法分配需要UI資源它在FG上(這不是由於交叉線程問題而發生的)。我想你需要在繼續之前解決這個衝突。

注:我不確定這一點。它只是一個觀察。希望我的回答能幫助你。

+0

我還有一個問題。什麼是應用程序可以處於活動狀態的最長時間。應用程序自動停用多久後? – Apoorva

+0

這取決於用戶是否在設置中設置了鎖定超時定時器。儘管可以通過禁用應用程序空閒檢測來阻止此操作:http://devlicio.us/blogs/derik_whittaker/archive/2011/02/15/idle-detection-and-running-under-lock-on-your-wp7.aspx –

+0

除此之外,只有用戶可以通過單擊開始按鈕或通過手動鎖定屏幕來讓自己處於停用狀態。 –

相關問題