WP7“Navigation is not allowed when the task is not in the foreground.”解決方案
今天在做一個專案的時候,遇到了“Navigation is not allowed when the task is not in the foreground.”這個錯誤,原因是我在main頁面中呼叫了PhotoChooserTask選擇器,應用程式失去啟用狀態,控制權由照片選擇器接管,但是我在Completed事件處理函式中,想直接跳轉頁面,並把選擇的照片傳給新頁面,程式碼如下:
void photoTask_Completed(object sender, PhotoResult e)
{
if(e.TaskResult == TaskResult.OK )
{
NavigationService.Navigate(new Uri("/PuzzlePage.xaml?type="+e.ChosenPhoto, UriKind.Relative));
}
}
這時候,就報題目中所示錯誤了,本能反應是開啟一個新的執行緒,或把跳轉程式碼封裝一個方法,再用DispatcherTimer控制方法的執行時機,但是,感覺執行效率都太差。
上網查了一下,最終成功解決,其最終解決方案就是:註冊Navigated事件,也就是將導航的時間向後推移,這樣,當我們導航時,我們的應用程式已從照片選擇器中成功接管了控制權。程式碼如下:
void photoTask_Completed(object sender, PhotoResult e)
{
if(e.TaskResult == TaskResult.OK )
{
NavigationService.Navigated += new System.Windows.Navigation.NavigatedEventHandler(NavigationService_Navigated);
}
}
void NavigationService_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
NavigationService.Navigate(new Uri("/PuzzlePage.xaml?“, UriKind.Relative));
NavigationService.Navigated -= new System.Windows.Navigation.NavigatedEventHandler(NavigationService_Navigated); //執行完畢後,取消該事件,以免重複註冊
}
相關文章
- [iOS]iOS 7的Navigation適配解決方案iOSNavigation
- 微軟WP7本機資料庫解決方案之Sqlite微軟資料庫SQLite
- Oracle 條件索引 case when 報錯解決方案Oracle索引
- react-navigation升級3.x 問題解決方案ReactNavigation
- No Task Available解決方法AI
- java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed 報錯的解決方案JavaSQLException
- onMounted is called when there is no active component 已解決
- android-Building a Notification,Preserving Navigation when Starting an ActivityAndroidUINavigation
- 關於Allowed memory size of (PHP記憶體溢位)錯誤的可能原因及解決方案PHP記憶體溢位
- Host 'xxx' is not allowed to connect to this MySQL server 解決方法MySqlServer
- 上手MySQL之解決問題:not allowed to connect to this MySQL serverMySqlServer
- Allowed memory size of 134217728 bytes 錯誤解決心得
- DataGuard之switchover_status狀態not allowed解決過程
- celery Discarding revoked task: ... 的解決辦法
- 解決方案| anyRTC金融音視訊解決方案
- LAMP解決方案LAMP
- 帝國CMSr的Fatal error:Allowed memory size of的解決辦法Error
- 高併發解決方案詳解(9大常見解決方案)
- ios不支援fixed解決解決方案iOS
- Failed to launch task: 檔案”Setup”不存在 Mac安裝Adobe軟體報錯解決方案AIMac
- netbakcup備份時遇到 status 59: access to the client was not allowed 問題解決client
- Grafana Nginx 403 Origin not allowed 及 ws websocket連線錯誤解決GrafanaNginxWeb
- 帝國CMS更新時提示Fatal error: Allowed memory size of的解決方法Error
- [WP7] WP7安裝那些鬱悶的事
- 前端整合解決方案前端
- 高可用解決方案
- UnexpectedRollbackException解決方案Exception
- Feast on Amazon 解決方案AST
- 埠占用解決方案
- 智慧停車場解決方案,反向尋車系統解決方案
- 解決mysql Navicat 出錯:1130-host . is not allowed to connect to this MySql server,MySqlServer
- 鴻蒙Navigation知識點詳解鴻蒙Navigation
- 跨域問題,解決方案 – CORS方案跨域CORS
- 跨域問題,解決方案 - CORS方案跨域CORS
- minikube配置代理:解決方案以及解決思路
- 智慧農業解決方案
- 大資料解決方案大資料
- javascript非同步解決方案JavaScript非同步