【发布时间】:2012-12-21 03:02:06
【问题描述】:
在 Android(针对 API 14-16)中,我有一个 MainActivity 和一个 NextActivity。如果在NextActivity 的onCreate() 块内调用getIntent() 方法,则使用意图从MainActivity 内启动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() 开始之前)声明它们,我通常可以避免这样做。但是由于某种原因,如果在onCreate() 之外出现getIntent() 语句(没有final 关键字),则应用程序在NextActivity 启动时崩溃。
知道为什么吗?
【问题讨论】:
-
你能发布崩溃的日志吗?
标签: android android-intent oncreate