Android: usando getIntent () somente dentro do onCreate?
No Android (segmentando APIs 14 a 16), tenho umMainActivity
e umNextActivity
. Não há dificuldade em usar intenções para começarNextActivity
de dentroMainActivity
se ogetIntent()
método é chamado dentro doonCreate()
bloco deNextActivity
:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int data = 7;
...
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("data", data);
startActivity(intent);
}
}
public class NextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final int data = this.getIntent().getIntExtra("data", 7);
...
}
...
}
No entanto, desde o campodata
está sendo usado dentro de uma classe anônima ("interna") emNextActivity
, Sou obrigado a declará-lofinal
.
Eu preferiria não declarar camposfinal
, e normalmente posso evitar fazê-lo se eu os declarar no início da aula, antesonCreate()
começa. Mas por algum motivo, o aplicativo trava quandoNextActivity
começa se ogetIntent()
declaração aparece (sem ofinal
palavra-chave) fora doonCreate()
.
Alguma ideia do porquê?