我每秒都有一个Service
来自网络服务器的下载数据(此Service
是从我的主Activity
启动的)。在我的应用中,还有其他Activity
个,需要根据Service
下载的数据刷新用户界面。
我的想法是为每个Activity
提供一个AsyncTask
,它将每秒从Service
检索一小部分数据。然后AsyncTask
会告诉用户界面更新。
直到昨天我都在完成AsyncTask
,但今天早上我在stackoverflow上读到了检索数据并将其提供给多个Activity
的{{1}}工作而不是Service
1}}一个。
所以我提出了这个(不那么好甚至是一点点)治疗的解决方案,因为我找不到如何通过{{检索数据时通知我的AsyncTask
1}}。
我读到了关于广播接收器,听众,意图......但是无法弄清楚如何定期让Activity
“订阅”这个服务。
感谢您的帮助。
PS:在我的写作中对每个关键字进行编码样本是不是很荒谬:)?
PS2:我的应用程序的用例是从Web服务检索温度,压力等......并在不同的Activity中监视这些数量(我无法在同一个Activity中监视它们)。
答案 0 :(得分:1)
可以通过Handler从服务中刷新数据。
关注此link处理程序。
答案 1 :(得分:0)
所以这就是我如何实现我的目标(感谢 Vineet Shukla ):
在活动" ServiceConsumerActivity"中,添加:
public static RefreshHandler mRefreshHandler;
class RefreshHandler extends Handler
{
@Override
public void handleMessage(Message msg)
{
showServiceData(); //from which I call a method of the Service for getting the fetching value
}
};
在服务中,添加:
Message mMessage = new Message();
ServiceConsumerActivity.mRefreshHandler.sendMessage(mMessage);