当你要开始一个新的活动,并想传递一个变量时,通常只需执行以下操作:
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);
。我尝试按以下方式读取extra:
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
如何工作。对于像我这样的初学者来说,文档真的很糟糕。