1

我有一个主要活动是 tabhost 的 Android 应用程序。我正在向 tabhost 添加多个选项卡,目的是进行多项活动。

我的问题是在我单击选项卡之前不会创建这些活动(不调用 onCreate)。这是一个问题,因为我需要注册广播接收器:可能会在打开特定选项卡之前发送广播。

我试图通过以下方式解决这个问题:

  • 将我的接收器设置为静态并从其他地方注册。这是不可能的,因为我需要调用方法。
  • 调用 tabHost.setCurrentTabByTag(the_tag) 然后切换回我的根选项卡。这只有时有效,这是一个非常丑陋的解决方案。
  • 不使用活动,而只是使用视图。也不是一个非常优雅的解决方案,因为它将我的 tabHost 活动变成了一个巨大的大师班,做各种不相关的事情。

这个问题的最佳解决方案是什么?我可以以某种方式使发送的广播“排队”而不是在没有接收器时消失吗?我可以强制创建我的标签活动(这不是问题,我的用户几乎可以保证在某些时候使用每个标签)?其他想法?

编辑:

根据 CommonsWare 在这个问题中的说法; 从 Android TabHost 中的选项卡活动更新选项卡

将选项卡实现为视图而不是活动可能是一个更好的主意......这在一定程度上改变了我的问题:

如何在同一个活动中分离不同类型的逻辑?不是很期待 30+ 方法的 uberactivity。

4

1 回答 1

0

我会使用 TabActivity 作为我的广播接收器,而不是选项卡活动。这将使您的代码更简洁,并且可以更好地控制您处理广播的方式

于 2010-06-03T15:35:57.550 回答