java – 在Android TabHost应用程序中完成活动间通信的最佳方式

前端之家收集整理的这篇文章主要介绍了java – 在Android TabHost应用程序中完成活动间通信的最佳方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是交易:我有一个 Android应用程序需要每X秒(当前60秒)调用一个Web服务.此应用程序有多个选项卡,这些选项卡都需要与数据本身进行交互.一个是MapView,一个是ListView,然后第三个是无关紧要的,但最终还需要得到一些全局数据.问题是我希望我的主要活动有一个在后台运行的线程,获取结果,然后指示TabHost中的两个子活动使用最新数据更新自己.此外,当用户单击选项卡并触发onCreate / onResume活动时,我还想通过从主活动获取最新数据来强制重绘.我真的很茫然.我已尝试使用服务和一些ghetto静态方法将活动的实例传递给服务,以便在定时器触发时调用特定函数来更新其视图,但减速非常糟糕且代码只是丑陋难看丑陋.有什么建议?

编辑:所以我在tabhost活动中将其实现为计时器驱动的线程,然后我在每个子活动中都有计时器驱动的线程,然后获取数据(以同步的方式)并更新它们的地图/列表.它的速度要快得多,但仍然感觉有点破解,尤其是我在父活动中调用自定义函数的部分,如下所示:

((MainActivity)getParent()).getNearbyMatches();

增加了一个强烈耦合的元素,我并不十分兴奋,但从性能的角度来看,它比它更好.我很欣赏已经给出的答案,并将对内容提供商进行一些研究,但我不确定是否要回到服务模型.

解决方法

所以我发现了我认为的答案: The Application Class.您可以扩展此类以跟踪全局应用程序状态.

在AndroidManifest.xml文件中,您可以在android:name属性中引用完全限定的自定义类,并在应用程序启动时实例化它.

然后,任何Activity都可以调用“getApplication()”,它将返回自定义Application类的实例,然后您可以根据需要进行定制.

猜你在找的Android相关文章