Java TabHost内的活动未获取OnneWinEvent

Java TabHost内的活动未获取OnneWinEvent,java,android,android-intent,nfc,Java,Android,Android Intent,Nfc,正如文档所述,如果该活动在清单中设置了launchMode=singleTop,那么意图将通过onNewIntent回调传入 当活动由TabHost启动时,我无法获得此行为。不调用onNewIntent,而是调用活动的onCreate方法,从而在活动堆栈顶部生成活动的新实例 这是我启动意图的代码: // create the TabHost that will contain the Tabs tabHost = (TabHost)findViewById(android

正如文档所述,如果该活动在清单中设置了launchMode=singleTop,那么意图将通过onNewIntent回调传入

当活动由TabHost启动时,我无法获得此行为。不调用onNewIntent,而是调用活动的onCreate方法,从而在活动堆栈顶部生成活动的新实例

这是我启动意图的代码:

// create the TabHost that will contain the Tabs
            tabHost = (TabHost)findViewById(android.R.id.tabhost);


            TabSpec tab1 = tabHost.newTabSpec("First Tab");
            TabSpec tab2 = tabHost.newTabSpec("Second Tab");
            TabSpec tab3 = tabHost.newTabSpec("Third tab");

           // Set the Tab name and Activity
           // that will be opened when particular Tab will be selected
            tab1.setIndicator("Tab1");
            Intent intent = new Intent(this, WhenLogin.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|
                    Intent.FLAG_ACTIVITY_SINGLE_TOP);
            tab1.setContent(intent);
还有其他人有这个问题吗?如果是这样,他们找到解决方案了吗?

TabActivity和将活动放入选项卡的一般方法已经被弃用了3.5年多。在此之前很长一段时间,很多专家都在警告开发者远离它。请使用现代的选项卡解决方案,例如带有选项卡指示器的ViewPager,或FragmentTabHost,甚至是使用选项卡视图的普通TabHost

正如文档所述,如果该活动在清单中设置了launchMode=singleTop,那么意图将通过onNewIntent回调传入

这仅适用于通过startActivity和startActivityForResult启动的活动,尽管将其与singleTop结合使用会让我担心

不调用onNewIntent,而是调用活动的onCreate方法,从而在活动堆栈顶部生成活动的新实例


活动的新实例不在活动堆栈上,因为它未用作完整的活动。相反,用户界面从活动中剥离出来,作为选项卡放入您的TabActivity中。

您所说的由TabHost启动是什么意思?我使用的是选项卡。当我没有使用标签的时候,所有的工作都很好。也许你可以考虑在你的源代码中粘贴来解释你用TabSoad启动的意思。我编辑了我的代码,谢谢你的回放。好吧,我明白了。但我使用nfc,这意味着我必须使用活动,而不是片段。我需要新的方法来获取NFC标签。有没有在活动中使用选项卡的方法?或者替换fragment类中的OnNewIntent方法?非常感谢@user3421416:但我使用nfc,这意味着我必须使用活动而不是片段——你不仅必须使用活动,而且必须是真正的活动。该活动是否有选项卡(例如通过ViewPager)无关紧要,但必须是真正的活动。