获得意图及其附加内容,但不是启动新活动的活动的意图

时间:2011-08-07 15:14:07

标签: android android-activity android-intent extra

当您即将开始一项新活动并希望传递变量时,通常只需这样做:

Intent intent = new Intent().setClass(this, NewActivity.class);
intent.putExtra("variable", variable);
startActivity(intent);

当你正在阅读额外的(在新活动中)时,你会这样做:

Intent intent = getIntent();
if(intent != null)
{
    variable = intent.getIntArrayExtra("variable");
}

现在,在我的应用程序中,我有一个加载屏幕,可以进行所有加载。这是在主要活动中进行的。在此过程中,许多变量正在更新/更改。我还有很多其他活动,我需要将这些新更新的变量传递给其中一些活动。问题在于这些活动是由我的主要活动而不是启动的。

在我的主要活动中,有什么方法可以这样做:

Intent newIntent1 = new Intent().setClass(MainActivity.this, NewActivity1.class);
newIntent1.putExtra("var1", var1);

然后使用其他活动中的startActivity(newIntent1);启动活动?

我试图像这样阅读额外内容:

Intent intent;
try
{
    intent = Intent.parseUri("content://com.mycompany.android.MainActivity", 0);
    if(intent != null)
    {
        var1 = intent.getIntArrayExtra("var1");
    }
}
catch (URISyntaxException e)
{
    e.printStackTrace();
}

这不起作用,var1变量为null(初始化为)。

说实话,我不知道如何做到这一点,或Intent.parseUri如何工作。对于像我这样的初学者来说,这个文档非常糟糕。

2 个答案:

答案 0 :(得分:1)

  

我还有很多其他活动,我需要将这些新更新的变量传递给其中一些活动。

不,你没有。

您需要编写一个真实的数据模型(数据库,内容提供者,静态数据成员中的POJO),并让所有活动都参考该公共数据模型。

答案 1 :(得分:0)

使用广播来更新活动会更容易。