Мое Android-приложение, которое я создаю с помощью MvvmCross, последовательно выполняет действия, а затем «возвращается» на домашнюю страницу.Как только приложение вернется на домашнюю страницу, я не хочу, чтобы пользователь мог вернуться назад ко всем предыдущим действиям.
Чтение всей документации, публикаций в блогах и т. Д. Я смог пересмотреть докладчика.и перехватить запрос на очистку заднего стека действий.
Весь этот код работает нормально, но я не смог выяснить, как очистить задний стек действий.Есть идеи, как мне этого добиться?Мой код ниже:
Setup.cs
public class Setup : MvxAndroidSetup<Core.App>
{
protected override IMvxApplication CreateApp()
{
return new Core.App();
}
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
MvxAppCompatSetupHelper.FillTargetFactories(registry);
base.FillTargetFactories(registry);
}
protected override void InitializeLastChance()
{
// Mvx.IoCProvider.ConstructAndRegisterSingleton<ICameraHelper, CameraHelper>();
base.InitializeLastChance();
}
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
var presenter = new MyAppAndroidPresenter(AndroidViewAssemblies);
Mvx.IoCProvider.RegisterSingleton<IMvxAndroidViewPresenter>(presenter);
return presenter;
}
}
MyAppAndroidPresenter.cs
public class MyAppAndroidPresenter : MvxAndroidViewPresenter
{
public MyAppAndroidPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies)
{
}
public override async Task<bool> Show(MvxViewModelRequest request)
{
if (request.PresentationValues != null)
{
if (request.PresentationValues.ContainsKey("ClearBackStack") && request.PresentationValues["ClearBackStack"] == "True")
{
// TODO : Clear the activity back stack
}
}
return await base.Show(request);
}
}
Вызов ViewModel
private async void NextPageMethod()
{
var presentationBundle = new MvxBundle(new Dictionary<string, string> { { "ClearBackStack", "True" } });
await NavigationService.Navigate<HomeViewModel>(presentationBundle: presentationBundle);
}