首页 / JAVA / java-为什么意图需要上下文?
java-为什么意图需要上下文?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-为什么意图需要上下文?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1463字,纯文字阅读大概需要3分钟。
内容图文
![java-为什么意图需要上下文?](/upload/InfoBanner/zyjiaocheng/684/32a146da2d0a4cb3998e6ad6a247adf9.jpg)
在进行不同的活动并启动结果时,我别无选择,只能使用意图.现在,意图需要上下文,这对我来说毫无意义.我知道上下文允许访问应用程序资源,但是
当意图只是一个简单的Messenger时,为什么需要了解应用程序资源?
另外,我不确定为什么有人用getApplicationContext()创建意图,而另一些人将其用于活动上下文吗?
最后,我不确定在没有为上下文而是为应用程序上下文传递“ this”时,调用startActivityResult()的活动如何收到对onActivityResult()方法的回调.我认为您必须使用“ this”或传入名为startActivityResult()的当前活动上下文才能接收回调.那只是Java吧?如果您传入一个类,则另一个活动类将具有对该类的引用,因此允许它调用您类中的方法onActivityForResult().但是,事实并非如此,我想念的是什么?
解决方法:
意图本身不需要上下文.构造函数Intent#Intent(Context,Class)只是一个便捷构造函数,它在内部使用提供的参数派生ComponentName. ComponentName依次只是您的应用程序的包名和要定位的类名.因此,ComponentName可能类似于:
com.foo.bar/com.foo.bar.ui.activity.MyActivity
但是,您也可以只使用一个空的构造函数Intent#Intent()并自己提供ComponentName(Intent#setComponentName(ComponentName)).
因此,无论您提供应用程序的上下文还是活动的上下文都没关系(后者更容易键入).还请记住,需要应用程序上下文的类可以自己调用Context#getApplicationContext,因此您无需担心.
关于startActivityForResult()-Android内部管理您的Activity记录的堆栈.因此,它将结果传递到堆栈上的上一个活动.单击“返回”时,它知道返回的位置相同.
请注意,这并不意味着它将维护您的Activity实例堆栈.这些实例可能早已消失-销毁并收集垃圾以释放内存.但是,堆栈包含允许重新创建它们并恢复其状态的信息.
内容总结
以上是互联网集市为您收集整理的java-为什么意图需要上下文?全部内容,希望文章能够帮你解决java-为什么意图需要上下文?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。