在Android(目标API 14-16)中,我有一个MainActivity和一个NextActivity.如果在NextActivity的onCreate()块内调用getIntent()方法,则使用Intent从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); ... } ... }
但是,由于字段数据正在NextActivity中的匿名(“内部”)类中使用,因此我不得不将其声明为final.
我宁愿不将final字段声明为final,如果我在onCreate()开始之前在类的开头声明它们,我通常可以避免这样做.但由于某种原因,如果在onCreate()之外出现getIntent()语句(没有final关键字),则NextActivity启动时app会崩溃.
知道为什么吗?
解决方法:
在onCreate()之前你不能getIntent() – 那时根本就没有Intent可用.我相信任何需要Context的事情都是如此.
但是,您的匿名内部类仍然可以调用getIntent(),因此您根本不需要将其声明为变量.
总结以上是内存溢出为你收集整理的Android:仅在onCreate中使用getIntent()?全部内容,希望文章能够帮你解决Android:仅在onCreate中使用getIntent()?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)