非常不理解,android中的toast为什么要传入context这个参数?

我实在太稳健了 2018-12-31 12:02:04
在下android刚学,所以暂时没有能力去看一些源码自己琢磨,就在网上问问,求解答。

我总觉得,不就是弹个toast么,你弹不就完了么?

直接在比activity更高一层的地方弹就是喽,按照我自己的理解,toast这玩应和activity等context没有任何关系,因为本来就是在更高一层的地方弹,不理解为什么需要传递context这个参数?
想弹toast的地方,还必须要传入一个context参数,否则没有办法使用toast,总感觉奇怪啊

求解答
...全文
1683 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhitaoyang 2019-01-17
  • 打赏
  • 举报
回复
简单点理解,每次Toast的显示要首先确定这个Toast要显示在哪个Activity上,而这个Context也就是上下文对象的意思就是,这是哪个Activity。
初学额 2019-01-14
  • 打赏
  • 举报
回复
我以为就我一个不懂,哈哈
leetow2006 2019-01-09
  • 打赏
  • 举报
回复
Context是很难理解,上下文也不知道什么是上下文
黄小楼 2019-01-07
  • 打赏
  • 举报
回复
居然还有人问这样的问题。 你不用context,Android系统是怎么知道是谁弹出toast? 另外,toast也是UI!
亲爱的Joe 2019-01-07
  • 打赏
  • 举报
回复
请百度下策略模式,理解下,然后再回头去看看android四大组件源码。一起学习,都别猜了
r00_a2lBUR 2019-01-07
  • 打赏
  • 举报
回复
应该也可以做成不用context的模式,可能是这个东西一开始是要求有context,后面的版本没有去升级
王能 2019-01-02
  • 打赏
  • 举报
回复
因为你对context理解的不够,新手可以暂时理解为:context是app能够展示ui的必要条件
没有鱼了 2019-01-02
  • 打赏
  • 举报
回复
看下ActivityThread类加载Activity相关源码就能差不多知道Context的概念了,它就是包含了一些隐藏信息,你在四大组件中可以通过它去获取
没有鱼了 2019-01-02
  • 打赏
  • 举报
回复
Context英文原意是上下文的意思,在平时开发中涉及到的四大组件及资源操作基本上都离不开Context对象;你可以想象它是一团神秘物质,在一个生活场景中,不管你在哪,在干什么,你都可以通过这团神秘物质获取到一些属于这个场景的隐性信息

比如你在吃一条鱼这个场景,你能知道的就是这条鱼多大,多好吃,但是假如你有Context这个上下文信息,你就能获取到更多信息,比如鱼的重量,鱼的种类,鱼的年龄等,用代码表示就是Context.getFishType(),你就知道这条鱼的种类了

这就是上下文的意思,某一个场景下一些隐藏的信息

其实Context家族很复杂,Context本身是一个抽象类,而ContextImpl,ContextWrapper,Activity,Service,Application等都是它的直接或间接子类

多看看源码就知道Context的前世今生了
初学额 2019-01-02
  • 打赏
  • 举报
回复
感觉这个 context 很难理解,主类里可以用,,,但是到了服务类里或者其它类里,就提示各种错误

关键是在不同类或服务里不知道如何得到正确的 context
bdmh 2019-01-02
  • 打赏
  • 举报
回复
你去看看toast源码,他需要context渲染布局
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
初学额 2018-12-31
  • 打赏
  • 举报
回复
关键是这个参数经常弄错,郁闷

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧