現在のAppプロジェクトにXamarin.Android/Xamarin.iOSとMvvmCrossを使用しています。アプリがバックグラウンドから復帰したときのMvvmCross ViewModel例外
私のアンドロイドアプリがバックグラウンドに移動すると、アプリが前面に戻ったときに「ロケータMvxDefaultViewModelLocatorからタイプ...のViewModelを構築および初期化できませんでした」という例外が発生します(添付スクリーンショット)。しかし、これは毎回ではありません。これは、アプリケーションがバックグラウンドモードに長時間入っていて、他の多くのアプリケーションがデバイスで開かれている場合にのみエラーが発生したようです。これはAndroidのメモリ管理と関係がありますか?
ありがとうございました。
編集: ありがとうございました。ここでは、内部例外は次のとおりです。
MvvmCross.Plattform.Exceptions.MvxException:タイプQuestionListViewModelの 問題実行しているのViewModelライフサイクル - > System.Reflection.TargetInvocationException:例外は、呼び出し のターゲットによって を投げてきました - > MvvmCross.Platfrom.Exceptions.MvxException:欠落しているテキスト・プロバイダー - ) MvvmCross.Localization.MvxLanguageBinder.get_TextProivder(に適しIMvxTextProviderでIOCを初期化してください...
だから私はuのよMvvmCross JsonLocalizationプラグインを歌います。
TextProviderBuilder builder = new TextProviderBuilder(fileService.LocalizationDirectoryPath);
this.builder.LoadResources(cultureKey.Trim());
Mvx.RegisterSingleton<IMvxTextProvider(builder.TextProvider);
Mvx.RegisterSingleton<IMvxTextProviderBuilder>(builder);
と私のViewModelクラスでこのようにそれを消費:起動時に、私はこのように私のtextproviderを登録
public string GetText(string key)
{
string text = new MvxLanguageBinder(Constants.GeneralNamespace, "shared").GetText(key);
return text;
}
Androidのメモリマネージャがtextproviderシングルトンインスタンスを殺すようなので、それはそうですか?
InnerExceptionの内容を確認し、ここに投稿する必要があります。 –
IoCコンテナをどこで設定しますか?これはあなたのInitialize() - Core-ProjectのあなたのMvxApplication-Classのメソッドで起こっていますか?私は、IMvxTextProviderBuilderビルダーのインスタンスがConstructor Injectionを介して提供されることを期待しています。 –