我想在启动应用程序或激活后检查BackgroundAudioPlayer是否正在播放,如果是,则转到带有播放器的页面。我知道我无法使用导航服务,我发现在 App.xaml 中.cs我应该像在激活中使用 RootVisual 一样,但它不起作用。RootVisual 为空。第一个没有错误,但问题是我到了 MainPage.xaml。那么我该如何解决呢?谢谢
private void Application_Launching(object sender, LaunchingEventArgs e)
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
RootFrame.Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
}
我已经修改了你的代码,请看一下;它会为你工作。
从Application_Activated事件中删除代码并放入Application_Launching事件中。并且不要在Application_Activated上写任何东西。(就导航上下文而言)。请执行两个步骤:
步骤-1转到 WMAppManifest.xml 文件并从默认任务中删除"MainPage.xaml"条目。并保持NavigationPage
的空条目。像这样NavigationPage=""
有关相同的内容,请参阅以下代码片段。
<Tasks>
<DefaultTask Name ="_default" NavigationPage=""/>
</Tasks>
<Tokens>
<PrimaryToken TokenID="liveTilesToken" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>liveTiles</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
步骤-2 相应地更新代码
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Uri newUri = null;
newUri = true ? new Uri("/MainPage.xaml", UriKind.Relative) : new Uri("/PlayerPage.xaml", UriKind.Relative);
RootFrame.Navigate(newUri);
}
希望对您有所帮助。
谢谢。