在android中,我有一个活动A和活动B.活动A是我的主屏幕,从那里我导航到活动B.活动B产生异步任务以进行网络呼叫,当任务返回时,它调用活动B中的方法来更新某个变量的值。
现在的问题是,当我按下后退或向上按钮从返回到之前异步任务返回时,我得到一个空指针异常。我的想法是,当按下后退时,活动B被销毁,因此程序无法找到要更新的变量。
我该如何处理?我尝试过使用广播呼叫,因此活动B将注册异步任务在返回时调用的广播。这确实解决了这个问题,但又引入了另一个问题 - 当我通过快速按下电源按钮使手机进入睡眠状态时,由于我必须在onPause活动B期间取消注册广播,因此不会收到任何广播。
你会如何解决这个问题?我如何处理将异步任务的结果返回给可能随时被销毁的活动?