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

Android:仅在onCreate中使用getIntent()?,第1张

概述在Android(目标API14-16)中,我有一个MainActivity和一个NextActivity.如果在NextActivity的onCreate()块内调用getIntent()方法,则使用Intent从MainActivity中启动NextActivity没有任何困难:publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCr

在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()?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存