Android服务可以在我的UI中更新图像

时间:2013-03-20 16:04:58

标签: android service android-ui

我希望有一个Android服务收集数据,然后根据该数据生成图像。我想从服务中在我的UI上绘制这个图像,或者找到一种有效的方法将图像数据发送到我的UI,并通知“立即绘制”。数据实时传输,更新速率约为每秒8幅图像(256x256像素)。因此,我需要一些相当有效的东西,并且很难找到最好的(甚至是好的)方法。

我是一个相当新的Android程序员,所以没有任何建议太侮辱!我的代码用我的演示用户界面作为AsyncTask。我想把它变成一个服务,所以我可以使用它与多个UI,其中一些我的同事将写。也许这是另一个问题,但可能有一种比服务更好的方法。我的根本问题是,我想将没有源代码的“服务”分发给我的同事,以便我的图像能够显示在用户界面中。

我的“服务”不必更新多个UI。一次只有一个活动会绑定到我的“服务”。不要求广播到多个活动。如果有一种更直接的方式来思考这个问题,我很高兴听到它。

谢谢

2 个答案:

答案 0 :(得分:0)

我认为您可以将数据写入文件。将它存放在SD卡上。然后向您的朋友活动发送包含该文件数据的广播。这样你的朋友就不会有源代码了。

答案 1 :(得分:0)

  

我想从服务中在我的用户界面上绘制此图像,或者找到一种有效的方式将图像数据发送到我的用户界面并发出“立即绘制”的通知。

你不能这样做 - 只有主线程可以改变UI。我打赌在你的AsyncTask演示中你在onPostExecute()方法中绘制 - 尝试将你的代码移动到doInBackground(),它不会工作。

我认为你能做的最好的事情就是在你的服务中获取/获取图像,并使用广播/ otto /无论是在SD卡上的某个地方通知你的消费者,它都可以使用。不太确定它是否足够快以每秒传递8个图像...