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ê?

questionAnswers(2)

yourAnswerToTheQuestion