是否可以更新用于创建活动的意图?

时间:2013-09-17 20:44:42

标签: android android-intent android-activity

是否可以从该活动本身内部修改用于创建活动的意图。

简单说明 是否可以更新

返回的意图
getIntent()

使用新值并让它使用这些新值,如果由于系统为资源杀死它或者方向更改而重新创建活动,或者在使用开发人员选项时不选择保持活动选项(这会强制重新创建每次离开它并返回它时的活动。)

我想要实现的目标

我试图在不使用数据库或SharedPreferences的情况下实现在活动之间传递变量(并更新它们)的方法。我希望数据只在应用程序存在时才能生效,但也可以通过机器人系统首选项轻松恢复。 这只是我的想法,尝试一些新的东西。我不知道我的解释会如此难以理解。对不起。

复杂描述

Scencario:

从MainActivity我用下面的代码

创建另一个Activity(ActivityA)
Intent tmp = new Intent(getApplicationContext(), ActivityA.class);
tmp.putExtra("Key", "Value");
startActivity(tmp);

然后在ActivityA中打印出该值

Log.i("TAG", getIntent().getExtras().getString("Key"));

以上行将在日志中打印出值

然后在ActivityA中,我将按下按钮以下面的代码

启动ActivityB
Intent tmp = newIntent(getApplicationContext(), ActivityB.class);
startActvityForResult(tmp, 1000) //1000 is the result code

然后当我按下按钮时ActivityB启动时,我想用以下代码将数据发送回ActivityA:

Intent returnIntent = new Intent();
returnIntent.putExtra("Test1", "Value2");
setResult(RESULT_OK, returnIntent);
finish();

以上所有工作都没有问题。 我想做的是ActivityA的onActivityResult(...) 使用此处返回的值修改用于创建ActivityA的意图

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    //modify intent used to create this activity with value received in data
}

因此,当我离开应用程序时,当方向更改或(开发人员选项不保持活动)重新创建活动时,getIntent()函数将返回新数据(在onActivityResult(...)中更新的数据)和不是最初创建它的那个(来自MainActivity的调用)。

这样的事情可能吗?

我一直在搞乱
setIntent(getIntent().putExtra("Key", "value obtained Intent data"))

但是当回家后重新创建活动时,getIntent会带来第一个意图(最初用于创建它),而不是在onActivityResult(...)中创建的修改意图

0 个答案:

没有答案