我从活动A开始活动B.活动B对我的数据执行某些操作,在某些时候我调用finish();
,但是活动B仍然在后台执行某些操作我的数据库,当它完成时我想要在活动A中得到通知,此过程已完成。
因为我无法通过其他活动调用方法,所以我尝试使用startActivityForResult
解决此问题,但因为我在实际设置结果之前调用了finish();
这似乎不起作用任
关于如何解决这个问题的任何想法?
答案 0 :(得分:2)
不要在Activity
内完成可能超过Service
生命周期的任务。在这种情况下,在Activity
中执行您的任务,并将结果通知给Activity
。有一些方法可以使用BroadcastReceiver,Messenger,Handler,Bound Service在Service
和{{1}}之间进行通信。您还可以使用EventBus库进行此通信。
答案 1 :(得分:0)
尝试关闭数据库,并在成功关闭后,“通知”您的活动A,了解此结果并完成活动。坦率地说,这是一个非常不精确的问题:P 如果你想从另一个类调用某个方法,请传递活动的Context。