Android(API 14〜16を対象とする)では、MainActivity
とがありNextActivity
ます。メソッドが:のブロック内で呼び出された場合、インテントを使用して内部から開始することは困難ではありませんNextActivity
。MainActivity
getIntent()
onCreate()
NextActivity
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);
...
}
...
}
ただし、このフィールドdata
はの匿名(「内部」)クラス内で使用されているためNextActivity
、宣言する必要がありfinal
ます。
フィールドを宣言したくないfinal
ので、クラスの最初、開始前に宣言すれば、通常は宣言しないようにできonCreate()
ます。ただし、何らかの理由で、ステートメントが(キーワードなしで)の外に表示さNextActivity
れると、起動時にアプリがクラッシュします。getIntent()
final
onCreate()
なぜですか?