У меня есть 3 действия (A, B, C), 2 из которых связаны с намерениями. Вот порядок звонков: A -> B -> C. В действии B я использую intent.putExtra("key", gameMode)
, чтобы начать действие C. При первом запуске активности C проблем нет. Но если C заканчивается, а я go возвращаюсь к B и изменяю game_mode, действие C всегда считывает самое первое намерение. Я знаю, что этот вопрос будет задаваться много раз, но даже если я попробую с onNewIntent()
(с setIntent(intent)
внутри) или даже с FLAG_ACTIVITY_CLEAR_TOP
, это ничего не изменит ... Я думаю (я конечно ...) Я все делаю не так, но прошу вашей помощи для полного и ясного ответа. Цель состоит в том, чтобы обновить намерение (или, по крайней мере, его дополнения). Стоит ли вызывать метод onNewIntent () или Android делает это самостоятельно? et c
Огромное спасибо людям, которые нашли время ответить на мой вопрос.
B-активность:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MenuPrincipal.this, GameCard.class);
intent.putExtra("key", gameMode);
onNewIntent(intent);
startActivity(intent);
}
});
C activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_layout);
int gameMode;
Bundle extras = getIntent().getExtras();
if(extras != null) {
gameMode = extras.getInt("key", 0);
}
}
@Override
public void onBackPressed() {
// do nothing.
//default value : super.onBackPressed();
}