我的应用程序不支持正常关闭是什么意思?

时间:2015-03-07 16:38:46

标签: c# windows-phone-7 windows-phone-8

我已将应用程序发布到Windows Phone Store,并收到以下警告:

  

应用政策:10.4.2优雅关机
  该应用程序支持正常关闭。应用程序必须处理由任何托管或本机系统API引发的异常,并且不会意外关闭。意外关闭的应用程序无法通过认证。在处理异常后,应用必须继续运行并保持对用户输入的响应   预期结果
  1.启动您的应用程序。 2.在整个应用程序中导航,然后关闭应用程序。 3.验证在关闭过程中未发生意外行为。 4.确认应用程序错误后应用程序仍然响应用户输入和用户交互。

我不确定这里的问题是什么,以及如何解决它。 I' M认为这可能与我的应用程序的内存占用量做的,但没有按那个'吨意义,因为它是唯一1 MB

[编者注:OP不是母语为英语的人,可能是问题的一部分]

代码:

List<WebBrowser> wbs = new List<WebBrowser>();
        List<PivotItem> pis = new List<PivotItem>();
        List<Uri> uris = new List<Uri>();
        public void mtdUlusal()
        {
            grd.Children.Clear();
            uris.Clear();
            pis.Clear();
            wbs.Clear();
            List<string> headers = new List<string>();
            headers.Add("Hürriyet");
            headers.Add("Milliyet");
            headers.Add("Posta");
            headers.Add("Radikal");
            headers.Add("Zaman");
            headers.Add("Sözcü");
            headers.Add("Cumhuriyet");
            headers.Add("Sol Haber");
            headers.Add("Sabah");
            headers.Add("Star");
            headers.Add("Akşam");
            headers.Add("Türkiye");
            headers.Add("Anadolu Ajansı");
            headers.Add("BirGün");

            Uri uri0 = new Uri("http://cep.hurriyet.com.tr/");
            uris.Add(uri0);

            Pivot pvt = new Pivot();
            pvt.Title = "ULUSAL GAZETELER";
            grd.Children.Add(pvt);
            pvt.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 0, 113, 206));
            //pvt.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(125, 100, 0, 75));


            Uri bln = new Uri("about:blank");

            for (int i = 0; i < 14; i++)
            {
                PivotItem pItem = new PivotItem();
                pItem.Header = headers[i];
                pis.Add(pItem);
                Grid grdUlusal = new Grid();
                WebBrowser wb = new WebBrowser();
                wb.IsScriptEnabled = true;
                wbs.Add(wb);
                grdUlusal.Children.Add(wb);
                pItem.Content = grdUlusal;
                pvt.Items.Add(pItem);
            }
            wbs[0].Navigate(uris[0]);
            pvt.SelectionChanged += Pvt_SelectionChanged;
        }

        private void Pvt_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Pivot pvt = (Pivot)sender;
            Uri uri1 = new Uri("http://wap.milliyet.com.tr/");
            Uri uri2 = new Uri("http://m.posta.com.tr/");
            Uri uri3 = new Uri("http://www.radikal.com.tr/");
            Uri uri4 = new Uri("http://www.zaman.com.tr/mobile.action");
            Uri uri5 = new Uri("http://m.sozcu.com.tr/");
            Uri uri6 = new Uri("http://www.cumhuriyet.com.tr/");
            Uri uri7 = new Uri("http://haber.sol.org.tr/");
            Uri uri8 = new Uri("http://www.sabah.com.tr/");
            Uri uri9 = new Uri("http://mobil.stargazete.com/default.asp");
            Uri uri10 = new Uri("http://m.aksam.com.tr/");
            Uri uri11 = new Uri("http://m.turkiyegazetesi.com.tr/");
            Uri uri12 = new Uri("http://www.aa.com.tr/");
            Uri uri13 = new Uri("http://www.birgun.net/");

            uris.Add(uri1);
            uris.Add(uri2);
            uris.Add(uri3);
            uris.Add(uri4);
            uris.Add(uri5);
            uris.Add(uri6);
            uris.Add(uri7);
            uris.Add(uri8);
            uris.Add(uri9);
            uris.Add(uri10);
            uris.Add(uri11);
            uris.Add(uri12);
            uris.Add(uri13);
            for (int i = 0; i < 14; i++)
            {
                if (pvt.SelectedItem == pis[i])
                {
                    wbs[i].Navigate(uris[i]);

                }
            }

        }

1 个答案:

答案 0 :(得分:0)

如果您想显示HTML,那么您应该只有一个WebBrowser控件,并在用户选择该数据透视时导航到新的URL。例如,这里有一些简单的XAML放在页面上:

<Grid x:Name="LayoutRoot" Background="Transparent">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <phone:Pivot SelectionChanged="OnPivotChanged">
    <phone:PivotItem Header="microsoft"/>
    <phone:PivotItem Header="msdn"/>
    <phone:PivotItem Header="onedrive"/>
    <phone:PivotItem Header="office"/>
  </phone:Pivot>

  <phone:WebBrowser x:Name="browser" Grid.Row="1" 
                    IsScriptEnabled="True" 
                    Navigated="OnBrowserNavigated" 
                    NavigationFailed="OnNavigationFailed"/>
  <TextBlock x:Name="errorMessage" FontSize="38" 
              Text="sorry, couldn't navigate to that site :-(" 
              TextWrapping="Wrap" Margin="30,0" 
              HorizontalAlignment="Center" VerticalAlignment="Center" 
              Grid.Row="1" Visibility="Collapsed"/>
</Grid>

以下是相关代码:

private void OnPivotChanged(object sender, SelectionChangedEventArgs e)
{
  browser.Visibility = Visibility.Collapsed;
  errorMessage.Visibility = Visibility.Collapsed;
  var newItem = e.AddedItems[0] as PivotItem;
  var site = new Uri("http://www." + newItem.Header.ToString() + ".com/");
  browser.Navigate(site);
}

private void OnBrowserNavigated(object sender, NavigationEventArgs e)
{
  browser.Visibility = Visibility.Visible;
}

private void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
{
  errorMessage.Visibility = Visibility.Visible;
}

它没有太多错误检查,非常基本,但你应该明白这个想法。在模拟器上运行它似乎稳定在每个分析器大约75MB,这完全在商店应用程序的限制范围内。