xamarin - 导航时是否处理 View-ViewModel
问题描述
我正在使用 Prism DryIoc 在 Xamarin Forms 项目中工作。例如,我有一个MainPage
, 和一个APage
,ViewModels
MainPageViewModel
和APageViewModel
. 在APageViewModel
我有一个像下面的代码一样简单的计时器:
private Timer _timer;
public override void Initialize(INavigationParameters parameters)
{
base.Initialize(parameters);
_timer = new Timer(1000);
_timer.Elapsed += (sender, args) =>
{
Debug.WriteLine($"{DateTime.Now.ToString(CultureInfo.InvariantCulture)}: Timer run");
};
_timer.Start();
}
当我使用从 MainPage 导航到 APageNavigationService.PushAsync
时,计时器开始。但是当执行时NavigationService.GoBackAsync
,APageViewModel
如果我不手动停止计时器,计时器不会停止_timer.Stop()
。所以我想知道是否APageViewModel
正确处理以清除视图模型中使用的资源?
解决方案
您是否尝试过在页面的 OnDisappearing 方法上停止计时器?
推荐阅读
- asp.net-core - 如何在 ABP.IO 框架中实现用户忘记密码
- python - Websocket Lambda Python 和 Angular
- javascript - 在现有状态转换期间无法更新(例如在 `render` 中)。渲染方法应该是 props 和 state 的纯函数。在 Index.js 中
- android - 在 Android 11 中在后台访问麦克风/摄像头
- lua - 在 Splash 中使用 Lua 脚本访问 google.com 的 DOM
- sql-server - 将不带破折号和冒号的 varchar 日期时间转换为带破折号和冒号的 varchar 日期时间
- reactjs - 更改选定项目的样式组件的样式
- python - odeint:无法根据规则“安全”将数组数据从 dtype('O') 转换为 dtype('float64')
- wordpress - 带有 Google Captcha 和 Honey Pot 的 Wordpress 联系表单垃圾邮件保护
- json - 带有 json 条目的 csv 解析