Android: używanie getIntent () tylko w ramach onCreate?
W systemie Android (kierowanie API 14-16) mamMainActivity
i aNextActivity
. Nie ma trudności z uruchomieniem intencjiNextActivity
z wewnątrzMainActivity
jeśligetIntent()
metoda jest wywoływana wewnątrzonCreate()
blokNextActivity
:
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);
...
}
...
}
Jednak od poladata
jest używany wewnątrz anonimowej („wewnętrznej”) klasy wNextActivity
, Jestem zmuszony to ogłosićfinal
.
Wolałbym nie deklarować pólfinal
i zazwyczaj mogę tego uniknąć, jeśli zadeklaruję je na początku klasyonCreate()
zaczyna się. Ale z jakiegoś powodu aplikacja ulega awarii, gdyNextActivity
zaczyna się, jeśligetIntent()
pojawia się instrukcja (bezfinal
słowo kluczowe) pozaonCreate()
.
Jakiś pomysł dlaczego?