在下android刚学,所以暂时没有能力去看一些源码自己琢磨,就在网上问问,求解答。我总觉得,不就是弹个toast么,你弹不就完了么?直接在比activity更高一层的地方弹就是喽,按照我自己的理解,toast这玩应和activity等context没有任何关系,因为本来就是在更高一层的地方弹,不理解为什么需要传递context这个参数?
想弹toast的地方,还必须要传入一个context参数,否则没有办法使用toast,总感觉奇怪啊求解答

解决方案 »

  1.   

    因为你对context理解的不够,新手可以暂时理解为:context是app能够展示ui的必要条件
      

  2.   

    你去看看toast源码,他需要context渲染布局
    LayoutInflater inflate = (LayoutInflater)
                    context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      

  3.   

    感觉这个 context 很难理解,主类里可以用,,,但是到了服务类里或者其它类里,就提示各种错误关键是在不同类或服务里不知道如何得到正确的 context 
      

  4.   

    Context英文原意是上下文的意思,在平时开发中涉及到的四大组件及资源操作基本上都离不开Context对象;你可以想象它是一团神秘物质,在一个生活场景中,不管你在哪,在干什么,你都可以通过这团神秘物质获取到一些属于这个场景的隐性信息比如你在吃一条鱼这个场景,你能知道的就是这条鱼多大,多好吃,但是假如你有Context这个上下文信息,你就能获取到更多信息,比如鱼的重量,鱼的种类,鱼的年龄等,用代码表示就是Context.getFishType(),你就知道这条鱼的种类了这就是上下文的意思,某一个场景下一些隐藏的信息其实Context家族很复杂,Context本身是一个抽象类,而ContextImpl,ContextWrapper,Activity,Service,Application等都是它的直接或间接子类多看看源码就知道Context的前世今生了
      

  5.   

    看下ActivityThread类加载Activity相关源码就能差不多知道Context的概念了,它就是包含了一些隐藏信息,你在四大组件中可以通过它去获取
      

  6.   

    应该也可以做成不用context的模式,可能是这个东西一开始是要求有context,后面的版本没有去升级
      

  7.   

    请百度下策略模式,理解下,然后再回头去看看android四大组件源码。一起学习,都别猜了
      

  8.   

    居然还有人问这样的问题。
    你不用context,Android系统是怎么知道是谁弹出toast? 另外,toast也是UI!
      

  9.   

    Context是很难理解,上下文也不知道什么是上下文
      

  10.   

    简单点理解,每次Toast的显示要首先确定这个Toast要显示在哪个Activity上,而这个Context也就是上下文对象的意思就是,这是哪个Activity。