2014-02-24 105 views
0

應用程序流是這樣;轉到主屏幕

  1. 用戶啓動應用程序,看到一個頁面,寫有「後臺任務啓動」
  2. 如果用戶點擊後退按鈕的應用程序終止,也後臺任務結束
  3. 但如果用戶點擊菜單按鈕,使用其他應用程序,然後我的應用程序繼續運行

現在我有兩種解決方案;請幫我解決這個問題。答:我應該有「OK」按鈕;如果用戶點擊它,主菜單應該打開 B.在後退按鈕中寫什麼,以便應用程序不終止。

In app.xaml

private static Geolocator locator;

public static Geolocator Locator 
    { 
     get 
     { 
      lock (typeof(App)) 
      { 
       if (locator == null) 
       { 
        locator = new Geolocator(); 
        locator.DesiredAccuracy = PositionAccuracy.High; 
        //locator.MovementThreshold = 50; 
        locator.ReportInterval = 10000; 
       } 
      } 
      return locator; 
     } 
    } 

在MainPage.xaml.cs中

保護覆蓋無效的OnNavigatedTo(NavigationEventArgs E) { App.Locator.PositionChanged + = Locator_PositionChanged; }

感謝

+1

你需要給我們展示一些代碼 –

+0

你應該更具體地描述你的問題。現在,我可以告訴你,你可以覆蓋「後退」按鈕,但我不知道如何使用原生的「主頁」按鈕行爲,即使有方法,應用程序也可能無法通過認證處理。 – Olter

+0

只是告訴我如何創建主屏幕實例移動到家庭(瓷磚)屏幕上點擊按鈕! – user3102858

回答

1

最有可能的,有沒有辦法來實現這一目標。

您可以覆蓋後退按鈕點擊事件,但不能覆蓋主頁按鈕事件。

此外,你甚至不能以編程方式調用本地主頁按鈕事件。

有在msdn forums


更新有類似的問題的鏈接。你仍然認爲,問題出在後退和菜單按鈕上。這對我來說似乎是錯誤的。問題是,當Application_Closing事件被命中時,後臺代理程序未被激活。

有在app.xaml.cs兩種方法:

Application_Deactivated和Application_Closing。你的後臺任務應該是活動的,如果其中任何一個被執行。

// Code to execute when the application is deactivated (sent to background, e.g. menu button is hit) 
// This code will not execute when the application is closing 
private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
{ 

} 

// 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) 
{ 

} 

在後臺代理構造函數中設置一個斷點,看它是否被命中。

順便說一句,你的兩個解決方案:

解決方法A無法做到的。 解決方案B可以通過重寫OnNavigatedFrom方法來完成。

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
     {   
      // nothing will happen here 
      //base.OnNavigatedFrom(e); 
     } 

但是,這將是對windows-phone導航服務原生行爲的粗魯違反。那不會通過認證。

+0

那我該怎麼辦?當用戶按下後退按鈕;應用程序終止!其實它的一個頁面的應用程序。一旦用戶打開它;它會在後臺運行,但如果用戶按回來,那麼應用程序終止 – user3102858

+0

後臺代理是否也終止?這有點奇怪,因爲windows-phone總是存在一個非關閉後臺代理的問題,這讓很多人惱火,但我從來沒有聽說過,代理初始化後會在應用退出時處理。你什麼時候初始化你的代理(也許它沒有在應用程序關閉時被初始化)? – Olter

+0

好吧,我沒有在Close事件中初始化;好的謝謝;我打算在關閉時執行此操作:)再次感謝 – user3102858