我有 A、B 和 C 类。A 类向 B 发送意图,B 运行 C,C 返回到 B .....但是在 B 类的 onCreate 内部,它想要 A 类的意图。但是因为它来自 C 类它没有得到它,但我仍然需要 A 类的意图
关于如何解决这个问题的任何想法?我想一种解决方案可能是将 extra.getString 存储在数据库或类似数据库中?
Bundle extras = getIntent().getExtras();
newString = extras.getString("ID");
我有 A、B 和 C 类。A 类向 B 发送意图,B 运行 C,C 返回到 B .....但是在 B 类的 onCreate 内部,它想要 A 类的意图。但是因为它来自 C 类它没有得到它,但我仍然需要 A 类的意图
关于如何解决这个问题的任何想法?我想一种解决方案可能是将 extra.getString 存储在数据库或类似数据库中?
Bundle extras = getIntent().getExtras();
newString = extras.getString("ID");
由于我不完全了解您的活动流程,因此这是一种解决方案,但可能不是合适的解决方案。
当你开始新的活动时,多放一个
intent.putExtra("ID_FROM_A", value); // except for ActivityA value = mIdFromA
startActivity(intent);
关于接收活动
onCreate()
{
mIdFromA = getIntent().getStringExtra("ID_FROM_A");
}
所以,如果我做对了:
活动一:
活动 B
活动 C
现在: 活动 C:
使用finish()返回活动B,或者
重新开始活动 B?
如果为 1,当您返回 Activity B 时,它仍然会保留您在首次创建时设置的所有内容。因此,您需要从 B 的 onCreate 中的意图中提取所有内容。
如果是 2,您只需将信息传递到用于启动每个活动的意图中。
如果您可以 (a) 确认 if 的顺序和 (b) 阐明上述内容为何行不通的原因,我相信我们可以继续前进。
您可以通过额外的证明“它是 A 类”从 A 类获取意图,然后将其设置为本地意图;
extras = getIntent().getExtras();
String a = extras.get("KEY");
if (a.equlas("A_CLASS") {
class_a_extras = getIntent();
}