У меня есть два действия в моем коде FirstActivity и SecondActivity.
Из FirstActivity я запускаю SecondActivity, см. Код ниже
Intent intent = new Intent(getBaseContext(), SecondActivity.class);
intent.putExtra("text", "someValue");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
, и это работает нормально, я могу прочитать значение в SecondActivity iя добавил в putExtra в FirstActivity.
Из SecondActivity у меня есть некоторый сложный код, но в некоторых местах мне нужно запустить FirstActivity, и я делаю это с помощью следующего кода
Intent intent = new Intent(getBaseContext(), FirstActivity);
Bundle bundle = new Bundle();
/* tested with both bundle and put extra none of them worked
*/
bundle.putString("text2", "someOtherString");
intent.putExtra("text3", "someOtherString");
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Это запускает FirstActivity, но когдая проверяю код (в FirstActivity)
@Override
protected void onStart() {
super.onStart();
Intent intent = getIntent();
if(intent != null) {
String string, string2;
Bundle bundle = intent.getExtras();
if(bundle != null) {
string = bundle.getString("text2"); //return empty
}
string2 = intent.getStringExtra("text3") //returns empty
}
}
Не могу понять, почему он пуст?Должен ли я начать деятельность с разными флагами?Если да, объясните, пожалуйста, почему.