Android:仅在onCreate中使用getIntent()?

bra*_*ese 7 android android-intent oncreate

在Android(目标API 14-16)中,我有一个MainActivity和一个NextActivity.如果在块内部调用方法,则使用Intent NextActivity从内部开始是没有困难的:MainActivitygetIntent()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);
        ...
        }
    ...
    }
Run Code Online (Sandbox Code Playgroud)

但是,由于该字段data在匿名("内部")类中使用NextActivity,我被迫声明它final.

我不想声明字段final,如果我在开始之前在类的开头声明它们,我通常可以避免这样做onCreate().但由于某种原因,NextActivity如果getIntent()语句出现(没有final关键字),应用程序会在启动时崩溃onCreate().

知道为什么吗?

qui*_*int 10

getIntent()以前不可能onCreate()- 那时根本就没有Intent.我相信任何需要的东西都是如此Context.

getIntent()但是,您的匿名内部类仍然可以调用,因此您根本不需要将其声明为变量.