我目前有以下问题:
我有一个通过Google Protobuf提供API的服务器。程序(在本例中为Android App)可以请求信息。我在Android中有一个Activity,它将通过Runnable
在后台请求信息,然后它将处理网络请求并调度到主线程上的函数,以使用新信息更新UI。因此,我给可运行对象final interface
提供了由Activity
实现的调度功能。现在,由于网络事务在后台发生,并且UI不应阻塞(例如,使用“加载微调器”),我不知道当用户在Runnable
仍处于活动状态时切换到另一个Activity时会发生什么。即使有另一个Activity
处于活动状态,它是否仍然可以正确调度?有什么好的设计实践可以解决这个问题。
我当然想过将变量添加到Runnable
中以将其标记为dont dispatch
,但是仍然可能存在竞争条件(当用户按下“后退”按钮时,它将被分派。在将Runnable
标记为已终止之前,在主线程的队列中具有分派的函数。
如果您需要任何其他信息,请询问,我们很乐意为您提供这些信息。