获得额外的意图和onCreate方法?

时间:2013-03-10 20:16:24

标签: android android-intent oncreate

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

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

Bundle extras = getIntent().getExtras();
 newString = extras.getString("ID"); 

3 个答案:

答案 0 :(得分:5)

由于我不确切知道您的活动流程,这是一个解决方案,但可能不合适。

当您开始新活动时,请额外添加

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

关于接收活动

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

答案 1 :(得分:2)

所以,如果我做得对:

Activty A:

  • 创建intentAtoB
  • 启动活动B

Activty B

  • 收到intentAtoB
  • 创建intentBtoC
  • 启动活动C

活动C

  • 接收intentBtoC
  • 做点什么

现在:活动C:

  1. 使用finish()或

  2. 返回活动B.
  3. 再次启动活动B?

  4. 如果为1,当您返回活动B时,它仍会包含您在首次创建时设置的所有内容。因此,您需要从onCreate of B中的意图中提取所有内容。

    如果为2,您只需要在用于开始每项活动的意图中向下传递信息。

    如果你能(a)确认序列是什么以及(b)澄清为何上述行为无效,我相信我们可以向前迈进。

答案 2 :(得分:0)

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

rename("Behnama.msi", "Behnama_$ar[1].msi");