나는 사용 Xamarin.Forms 4.4.0.9916
하고Prism.Unity.Forms 7.2.0.1422
기본 프리즘 응용 프로그램에서로 이동하기 전에 작업을 수행하고 싶습니다 MainPage
(예 : 작업을로 바꿉니다 await Task.Delay(500);
).
문제는 앱이 MainPage
. 주석 처리 await Task.Delay(500);
하면 앱이MainPage
그렇다면 그 코드의 문제점은 무엇입니까? MainPage로 이동하기 전에 대기 가능한 메서드를 어떻게 가질 수 있습니까?
언제 await Task.Delay(x);
빠른 (즉이다 await Task.Delay(50);
받는 사람) 다음 응용 프로그램 탐색합니다MainPage
public partial class App : PrismApplication
{
public App() : this(null) { }
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override async void OnInitialized()
{
InitializeComponent();
await Task.Delay(500);
await NavigationService.NavigateAsync(new Uri("http://www.somewhere.com/MainPage", UriKind.Absolute));
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<NavigationPage>();
containerRegistry.RegisterForNavigation<MainPage, MainPageViewModel>();
}
}
여기에는 여러 가지 방법이 있지만 구현하려는 것은 일종의 LoadingPage입니다. 필요한 경우 (ViewModel없이) 다소 "멍청한"페이지가 될 수 있습니다. 또는 시작 논리를 LoadingPageViewModel로 마이그레이션 한 다음 거기에서 탐색 할 수 있습니다.
protected override async void OnInitialized()
{
// This ensures the MainPage is set and prevents the app from being killed
// by the platform. Also provides better User Experience...
await NavigationService.NavigateAsync("/LoadingPage");
await Task.Delay(TimeSpan.FromSeconds(30));
await NavigationService.NavigateAsync("/MainPage");
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다