我有一个主要活动是 tabhost 的 Android 应用程序。我正在向 tabhost 添加多个选项卡,目的是进行多项活动。
我的问题是在我单击选项卡之前不会创建这些活动(不调用 onCreate)。这是一个问题,因为我需要注册广播接收器:可能会在打开特定选项卡之前发送广播。
我试图通过以下方式解决这个问题:
- 将我的接收器设置为静态并从其他地方注册。这是不可能的,因为我需要调用方法。
- 调用 tabHost.setCurrentTabByTag(the_tag) 然后切换回我的根选项卡。这只有时有效,这是一个非常丑陋的解决方案。
- 不使用活动,而只是使用视图。也不是一个非常优雅的解决方案,因为它将我的 tabHost 活动变成了一个巨大的大师班,做各种不相关的事情。
这个问题的最佳解决方案是什么?我可以以某种方式使发送的广播“排队”而不是在没有接收器时消失吗?我可以强制创建我的标签活动(这不是问题,我的用户几乎可以保证在某些时候使用每个标签)?其他想法?
编辑:
根据 CommonsWare 在这个问题中的说法; 从 Android TabHost 中的选项卡活动更新选项卡
将选项卡实现为视图而不是活动可能是一个更好的主意......这在一定程度上改变了我的问题:
如何在同一个活动中分离不同类型的逻辑?不是很期待 30+ 方法的 uberactivity。