我刚刚开发了我的第一个xamarin.forms
应用程序。我对xamarin.forms
很兴奋,但我错过了几个事件。xamarin.forms
ContentPage
中是否有任何页面生命周期事件?
我知道这两个:
protected override void OnAppearing()
{
}
protected override void OnDisappearing()
{
}
但是OnAppearing()
事件只触发一次。在Android上,当我按下开始按钮并返回到我的应用程序时,此事件不会再次触发。
是否有解决方法(如WindowsPhone-pages中的OnNavigatedTo
)?
4条答案
按热度按时间7gcisfzg1#
因此,
OnAppearing
事件在页面出现时触发。也就是说,您已经导航到该页面或从堆栈中的另一个页面返回到该页面。当前没有Page Lifecycle
事件,如您在API documentation中看到的我想你说的是,如果你把你的应用程序置于睡眠状态,然后导航回到它,
OnAppearing
事件不会被触发,这是因为你的页面还没有出现,因为它已经在那里了,应用程序只是睡着了。您要查找的是
App Lifecycle
,其中包括以下方法:然后,您可以使用
OnResume
事件来执行所需的操作。该Xamarin文档包括必须对旧Xamarin项目进行的更改以访问这些事件。例如,共享库中的
App
类必须继承自Xamarin.Forms.Application
,并且还必须对AppDelegate
和MainActivity
进行更改。vulvrdjw2#
您还可以使用Xamarin的MessagingCenter来执行任意事件协调:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/messaging-center/
我也被同样的事情困扰过:Xamarin. Forms中没有一致的view生命周期事件。但是您可以通过使用MessagingCenter来绕过其中的一些限制,MessagingCenter只是一个简单的发布/订阅消息工具。
46scxncf3#
根据第一个答案https://stackoverflow.com/a/29252552/1894630
在onappearing和ondisappearing上设置标志,并基于它使用onresume。即
Contentpage.xaml.cs
App.xaml.cs:
njthzxwz4#
我用下面的代码