Closed wanwanlc closed 4 years ago
viewmodel有耗时任务的话不能立即销毁吧,耗时操作如何取消呢?假如线程中的for大数循环。实际vm确实不会内存泄漏,只是不知道原理。
viewModel 不是感知Activity的生命周期的吗 你的耗时操作在子线程 直接把子线程关掉就行吧 . 而且 viewModel 没有持有Activity的实例吧..
就像是activity中启动一个匿名类耗时线程Thread,activity退出时,Thread未结束就会导致内存泄漏。子线程能直接关掉吗?for大数循环如何关掉呢,一般不都是静态内部类+弱引用解决内存泄漏问题,但vm中就不用解决内存泄漏,不知道原理。
不是在onclear中取消耗时任务了么。。那怎么还会持有act,还会内存泄漏。
,
取消了任务会立即停止吗
原来viewmodel是静态变量的变量,不会隐式持有activity强引用
Activity停止的时候 viewModel 不是也销毁了吗 .. 可以选择在viewModel的onCleared 方法中 取消 耗时操作啊