我有使用Prism的Xamarin.Android待辦事項列表移動應用程序。Xamarin.Android應用程序通過快捷方式的意圖繼續 - Master和Detail必須在將MasterDetailPage添加到容器之前設置
的問題是:
- 在android系統,我可以創建快捷方式 應用打開特定列表。
- 當我打開應用程序,並按下home鍵,它仍然在後臺 (那OK)
- 當我再運行從桌面快捷方式的應用程序,它會打開 Android的活動,當我創造新的PrismApplication(
LoadApplication(new App());
)一切運行正常,但在創建viewmodel進行查看後, 之後,應用程序仍然使用之前的 之前的舊viewmodel。
我做了這個workaroud我用PrismApplication的同一個實例:
static App xamApp;
protected override void OnCreate(Bundle bundle)
{
if (xamApp == null)
{
Forms.Init(this, bundle);
xamApp = new App();
}
LoadApplication(xamApp);
xamApp.Redirect(Intent.GetStringExtra("ListID"));
}
現在,問題是重定向。此代碼:
public void Redirect(string listId)
{
NavigationService.NavigateAsync($"MainPage/MainNavigationPage/TodoList?id={listId}", animated: false);
}
導致錯誤:
System.InvalidOperationException: Master and Detail must be set before adding MasterDetailPage to a container.
棱鏡應該由NavigateAsync URI的 「TodoList的」 綁定在MasterDetailPage詳細的照顧。
enyone知道這裏可能是什麼問題嗎?
是的,應用程序已經在後臺運行(只有在應用程序已經運行時纔出現問題)。我試過這個絕對的URI,結果是一樣的。問題是我使用的是默認的LaunchMode,所以也許創建了新的應用程序實例,但是以某種方式使用舊的PrismApplication,即使在我創建新的時候:'LoadApplication(new App());'。我對android開發很陌生,所以我不太確定這是怎麼發生的。 –