2017-10-14 62 views
1

我记得有些日子,我需要拨打isFinishing()来检查活动是否仍然存在,以避免更新不再存在的视图,或者它会抛出NullPointerException,但我没有看到在改进教程中提到过这个问题。我也跑了测试,没有看到任何崩溃。这是否已通过改造处理?如果是,那么改装是否只照顾活动或碎片?使用改造时,我是否需要检查活动是否还活着?

回答

1

你应该处理它。如果您直接在活动中使用改造,则不会得到NullPointerException。但即使活动完成后,网络仍将被使用,回调仍将被调用,并且活动占用的资源仍将保留在内存中,直到回调完成。

如果您在片段内使用翻新,则更可能在回调中获得NullPointerException。

最好的方法是在onDestroy()方法内获得Call对象的参考和使用call.cancel()

+0

它的奇怪,我记得我不得不检查活动是否仍然存在,但现在不抛出任何异常 – user1865027