这个问题比编码相关更具概念性。
我有一个Activity
A和B的应用。
我从AsyncTask
A拨打Activity
,在拨打电话时,我不想阻止用户显示progressdialog,因此我的用户可以自由地移动应用程序没有厌倦等待。
现在,查询为AsyncTask
或者说Service
正在从Activity
A调用Activity
,它负责从服务器下载某种数据。在进行通话时,用户已更改Activity
和Activity
A已进入后台。
现在,当用户在应用程序中自由移动时,他只想回到TextView
A来检查下载状态(这可以说是我将一些数据设置到我的{{1} })。
现在的问题是,一旦下载结束,当我的Activity
A仍在后台时,我的用户界面应该在Activity
仍在后台时更新。这样,用户在切换到Activity
A之前就感觉到他获得了数据。
这是可能的,如果是这样的话怎么样?
总结我的问题,我是否可以更新Activity
的用户界面,同时Asynctask
或Service
Activity
调用来自服务器的数据onResume()
。 / p>
一篇帖子建议理想情况下我需要更新UIViewControllerContextTransitioning
中的**用户界面。我的问题是,这是唯一的方法吗?
答案 0 :(得分:2)
onResume()
将是最好的方法。您可以将更改保存在SharedPreferenes中或使用Intent传递数据,并在UI可见之前显示更改。
另一种方法是运行服务并检查活动是否可见。如果可见则立即更新UI或等到用户访问活动。要检查活动当前是否可见,请参阅此处,
How to check if activity is in foreground or in visible background?
答案 1 :(得分:2)
下载完成后,当我的
Activity
A仍在后台时,我的用户界面应该在Activity
仍在后台时更新。这样,用户在切换到Activity
A之前就感觉到他获得了数据。
这是不可能的。您看,Activity
必须通过onCreate()
和onResume()
回调才能更改用户界面。
此外,当Activity
返回前台时,您应该使用bound Service
来更新strcmp()
。