Android 通过在bundle中传递新数据恢复旧活动

Android 通过在bundle中传递新数据恢复旧活动,android,android-intent,android-activity,android-bundle,Android,Android Intent,Android Activity,Android Bundle,我有两个活动,比如A,B,C。活动A开始B,B开始C等等。在我的应用程序中,我放置了一个导航抽屉,允许用户返回到活动a。当用户返回到活动a时,我传递了一些标志,这些标志实际上不会重新启动活动,而只是继续活动 intent = new Intent(activity, A.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 现在我尝试使用bundle传

我有两个活动,比如A,B,C。活动A开始B,B开始C等等。在我的应用程序中,我放置了一个导航抽屉,允许用户返回到活动a。当用户返回到活动a时,我传递了一些标志,这些标志实际上不会重新启动活动,而只是继续活动

intent = new Intent(activity, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
        | Intent.FLAG_ACTIVITY_SINGLE_TOP);
现在我尝试使用bundle传递一些数据

    bundle.putInt("selectedTab", FEATURED_COUPONS);
    intent.putExtras(bundle);
但是在我的活动A中,bundle总是空的

if(bundle != null)
{
    if(bundle.containsKey("selectedTab"))
    {
        int tab = bundle.getInt("selectedTab");
    }
}

如果要将数据传递给已创建的活动,则必须在活动A中使用startActivityForResult和override-onActivityResult方法


相反,如果您再次创建活动,我建议在活动中使用startActivity方法之后使用finish()。

我认为您应该在onNewIntent(Intent)方法中执行“if(bundle!=null)”任务。

您的操作方式不对

如果您只想在
Intent
extras中添加一个
整数
extras,那么不要这样做

bundle.putInt("selectedTab", FEATURED_COUPONS);
intent.putExtras(bundle);
putExtras(Bundle extra)
的文档中

@Override
protected void onNewIntent(Intent intent) {
    if (intent != null)
        setIntent(intent);
}
向意图中添加一组扩展数据按键必须包含软件包前缀,例如,应用程序com.android.contacts将使用类似“com.android.contacts.ShowAll”的名称

相反,只要使用

intent.putExtra("selectedTab", FEATURED_COUPONS);
然而,这并不是你问题的真正原因。正如Sumit Uppal所提到的,您应该在
活动中实施
A。然后您可以使用它将“当前”
Intent
设置为新的
Intent

@Override
protected void onNewIntent(Intent intent) {
    if (intent != null)
        setIntent(intent);
}
然后在
onResume()
中,您可以使用

Intent intent = getIntent();

…然后从
Intent
中获取
捆绑包

在获取捆绑包的地方发布代码,并在稍晚的时候开始活动,但我刚刚偶然发现了这个解决方案,经过3个小时的搜索,终于结束了我的痛苦!!!那正是我想要的。非常感谢你!当您使用ACTION_MAIN调用launcher活动时,有什么方法可以做到这一点吗?请帮助。。我还试图通过将Intent Intent=get Intent()代码放在onResume()中来实现我的代码,但仍然没有从一个活动传递到另一个活动。请记住,我有两个用户同时在不同的设备上使用相同的应用程序。我试图将一个值从Rider传递给Driver,但结果仍然为空。onNewIntent(intent)方法在接收应用程序还是发送应用程序上?