Когда вы собираетесь начать новое действие и хотите передать переменную, вы обычно просто делаете это:
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
. Документация для этого действительно плоха для новичка, такого как я.