Я работаю над одним проектом Android Xamarin, который использует MvvmCross версии 3.5.1.Я столкнулся с одной проблемой, которая, по нашему мнению, могла быть связана с ошибкой установки MvvmCross.Приложение в основном для платформ Android и iOS.Но я столкнулся с проблемой специально для Android.Приложение довольно старое и находится в разработке за последние 3-4 года и никогда не обновлялось до последних выпущенных версий MvvmCross.Обновление MvvmCross - последний вариант для меня.Но перед этим я хочу решить эту проблему, зная, что это основная причина и способ ее воспроизведения.
Сценарий:
1) Приложение установлено на устройстве Android, логин естьготово.
2) Приложение переместилось в фоновый режим.
3) Через 3-4 дня приложение возобновило работу, нажав на значок запуска приложения и застревало на заставке.
4) Приложение снова заработало, когда
принудительная остановка при настройке телефона
Я не могу воспроизвести эту проблему, не оставляя ее в фоновом режиме более 3-4 дней.Не могли бы вы предложить несколько подходов, чтобы узнать причину и шаги по воспроизведению этой проблемы, не переводя приложение в фоновый режим более чем на 4 дня.
Ниже журналы, напечатанные с MvvmCross, и приложение зависает на заставке.Журнал оператора выделен жирным шрифтом «Искатель типа модели представления недоступен - при условии, что мы ищем заставку - возвращаем ноль» - печатается 3-4 раза, а затем приложение застревает на заставке.Хотя приложение застряло на заставке.push-уведомления принимаются приложением.
Настройка: запуск PlatformServices "
Настройка: запуск настроек MvvmCross"
Настройка: запуск Singleton Cache "
"mvx": "Искатель типа модели представления недоступен - при условии, что мы ищем заставку - возвращает ноль"
"mvx": "Искатель типа модели представления не доступен -при условии, что мы ищем заставку - с возвращаемым нулем "
" mvx ":" Нет доступного искателя типа модели представления - при условии, что мы ищем заставку - с возвратом нулевого "
Пожалуйста, помогите мне узнать, почему вышеуказанный оператор журнала, выделенный жирным шрифтом, печатается 3-4 раза и почему журналы из _setup.InitializeSecondary () не печатаются, а затем приложение застревает на заставке. Похоже на установкузавис между ними из-за какого-то тупика или состояния гонки. Это действительно поможет мне, если у вас есть какие-либо предложения, чтобы узнать возможности узнать причину и способ воспроизвести эту проблему. Спасибо в advance.
Обновлено: Мы можем воспроизвести этот сценарий, комментируя вызов InitializeSecondary () из MvxAndroidSetupSingleton-> InitializeFromSplashScreen () и приложение, застрявшее на экране-заставке.пожалуйста, предложите исправить эту заставку, застрявшую в коде приложения.По сути, мы не хотим изменять код MvvmCross и хотим исправить его из кода приложения.Ваша помощь приветствуется.Согласно журналам, строка кода _setup.InitializeSecondary (); в приведенном ниже методе из MvxAndroidSetupSingleton.cs не выполняется.Эта проблема воспроизводится только после того, как приложение остается в фоновом режиме более 4-5 дней.Сначала я пытаюсь узнать, почему это происходит в данном конкретном случае, а затем решить его.Заранее спасибо
Примечание: Я использую службу Android Foreground в своем приложении
public virtual void InitializeFromSplashScreen (IMvxAndroidSplashScreenActivity splashScreen) {lock (LockObject) {_currentSplashScreen = splashScreen;
if (_initializationStarted)
{
if (_initialized)
{
_currentSplashScreen.InitializationComplete();
return;
}
return;
}
_initializationStarted = true;
}
_setup.InitializePrimary();
ThreadPool.QueueUserWorkItem(ignored =>
{
_setup.InitializeSecondary();
lock (LockObject)
{
_initialized = true;
if (_currentSplashScreen != null)
_currentSplashScreen.InitializationComplete();
}
});
}