【发布时间】:2020-01-31 18:11:30
【问题描述】:
我在我的应用中使用 onResume() 时遇到了奇怪的体验
这是一个小屏幕录像(不知道如何在此处发布) https://vimeo.com/387615558?ref=em-share
这是一个重新创建问题的示例项目 https://github.com/Lirian21/SampleApp
我让断点停止,我让方法运行,但由于某种原因,它实际上并没有弹出到根目录,
如果我确实让导航真正起作用,它只会导航到死页,应用程序就会冻结。 我实际上不确定如何处理 onResume() atm,我唯一需要做的是它需要检查是否有连接,如果有连接,它应该只是转到主页,我更喜欢如果它只是从中断的地方继续,但不确定它是如何工作的。
protected override void OnResume()
{
try
{
MakeWebRequest();
if (IsConnected != true)
{
MainPage = new NoInternet();
}
else
{
//base.OnResume();
var nav = MainPage.Navigation;
nav.PopToRootAsync(true);
nav.PushAsync(new Home("XXXX"));
}
}
catch (IOException ex)
{
Crashes.TrackError(ex);
}
}
public partial class Home : MasterDetailPage, INotifyPropertyChanged
public App()
{
InitializeComponent();
MakeWebRequest();
try
{
MainPage = new NavigationPage(new Home("XXXX"));
}
}
我的手机上也没有启用销毁活动的设置
我在日志天气 onResume()、OnStart() 等中找到了一个常量,但我似乎无法找到错误的含义
[HwSecImmHelper] mSecurityInputMethodService is null
更新:
我发现如果我使用产品上的按钮导航,然后使用主详细信息导航,应用程序不会像我显示的那样崩溃
所以只有当我在恢复后直接使用主从页面导航时应用程序才会崩溃
【问题讨论】:
-
我对 Xamarin 不太熟悉,但您必须调用
onResume()的超类实现。您没有在此处执行此操作(除非 Xamarin 为您执行此操作)。 -
添加了一个指向正在发生的事情的短片的链接,据我了解,这就是
base.OnResume();的用途,但结果是一样的 -
去掉 nav.PushAsync(new Home("XXXX")); 会起作用吗?为什么在 PopToRootAsync 后得到一个 HomePage 时要推送到一个新的 HomePage。
-
我刚刚发布了我使用的所有内容,无论我是否只是推送到 Root,结果都是一样的,如果我推送新家相同,除了尝试捕获同样的事情,不知道发生了什么,但我正在使用 PoptoRoot 清除想要的堆栈,然后导航到我所在的页面,但决定先解决这个问题
-
您能否提供一个可以重现此问题的示例项目?
标签: c# xamarin.forms android-lifecycle