是否有更多的意图和onCreate方法?

问题描述 投票:8回答:3

我有A,B和C类。A类向B发送意图,B运行C,C返回B .....但是,然后在B类的onCreate内,它需要A类的意图。因为它来自C类,所以没有得到,但是我仍然需要A类的意图

关于如何解决这个问题的任何想法?我想一种解决方案可能是将extra.getString存储在数据库或类似数据库中?

Bundle extras = getIntent().getExtras();
 newString = extras.getString("ID"); 
android android-intent oncreate
3个回答
2
投票

所以,如果我做对了:

活动A:

  • 创建intentAtoB
  • 开始活动B

活动B

  • 接收intentAtoB
  • 创建intentBtoC
  • 开始活动C

活动C

  • 接收intentBtoC
  • 做某事

现在:活动C:是否>

  1. 使用finish()返回到活动B,或

  2. 再次开始活动B?

  3. 如果为1,当您返回活动B时,它仍然具有您在初次创建时所设置的所有内容。因此,您需要从B的onCreate的意图中提取所有内容。

如果为2,则只需要按照用于开始每个活动的意图将信息向下传递给链。

[如果您可以(a)确认if的顺序,以及(b)阐明上述方法为什么行不通,我相信我们可以继续前进。

由于我不确定您的活动流程,所以这是一种解决方案,但可能不合适。

[当您开始新活动时,请多加一点

intent.putExtra("ID_FROM_A", value); // except for ActivityA value = mIdFromA
startActivity(intent);

关于接收活动

onCreate()
{
    mIdFromA = getIntent().getStringExtra("ID_FROM_A");
}

您可以从A类获得意图,并提供额外的证明“它是A类”,然后将其设置为本地意图;

extras = getIntent().getExtras();
String a = extras.get("KEY");

if (a.equlas("A_CLASS") {
    class_a_extras = getIntent();
}

6
投票

由于我不确定您的活动流程,所以这是一种解决方案,但可能不合适。


0
投票

您可以从A类获得意图,并提供额外的证明“它是A类”,然后将其设置为本地意图;

© www.soinside.com 2019 - 2024. All rights reserved.