App flow就是这样;
现在我有两个解决方案;请帮我解决这个问题。
一个。我应该有“OK”按钮;如果用户点击它,则应打开主菜单 B.在Back按钮中写什么,以便App不会终止。
在app.xaml
私有静态Geolocator定位器;
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
中protected override void OnNavigatedTo(NavigationEventArgs e) { App.Locator.PositionChanged + = Locator_PositionChanged; }
由于
答案 0 :(得分:1)
最有可能的是,没有办法实现这一目标。
您可以覆盖后退按钮点击事件,但不能覆盖主页按钮事件。
此外,您甚至无法以编程方式调用本机主页按钮事件。
上有类似问题的链接<强>更新即可。你仍然认为,问题出在后面和菜单按钮上。这对我来说似乎不对。问题是,当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 navigationservice本机行为的粗暴违反。这不会通过认证。