我有一个Android应用程序,它的主要活动是tabhost。我将向TabHost添加多个选项卡,目的是进行多个活动。
我的问题是,在单击选项卡之前,这些活动不会被创建(OnCreate不会被调用)。这是一个问题,因为我需要注册BroadcastReceivers:可能在打开特定选项卡之前发送了广播。
我试图通过以下方式来解决这个问题:
-
将我的接收器设置为静态并从其他地方注册。这是不可能的,因为我需要调用方法。
-
调用tabhost.setcurrenttabytag(the_tag),然后切换回我的根选项卡。这只是有时有效,这是一个非常丑陋的解决方案。
-
不是使用活动,而是使用视图。也不是一个非常优雅的解决方案,因为它将我的tabhost活动变成了一个大型的主类,处理各种无关的事情。
这个问题的最佳解决方案是什么?我能让发送的广播“排队”而不是在没有接收器的情况下消失吗?我可以强制创建我的选项卡活动吗(这不是问题,我的用户几乎可以保证在某些点上使用每个选项卡)?其他想法?
编辑:
根据这个问题中的通用软件;
Update tabs from a tab's activity in a Android TabHost
最好将选项卡实现为视图而不是活动…这多少改变了我的问题:
如何在同一个活动中分离不同类型的逻辑?不太期待30+方法UberActivity。