作者Deltaguita (贝纳颂)
看板AndroidDev
标题Re: [问题] 关於context一些相关问题
时间Wed Jul 16 23:14:35 2014
简单说一下context
他是activiy 、 service 、跟application 的父类别
如果你要用到跟"android"有关非一般JAVA的资源你都需要使用到context
例如你原文中举例的 Toast、Dialog 这两种andorid提示讯息
或是Notification manager、或是字串图片等资源(getResoucre)等等
我会帮他当成是一个桥梁,我们可以透过他在andorid系统上做很多事情
而你文章提到的为何Toast可以在使用applicationCnontex的时候出现
Dialog 不行的原因其实很简单,使用的contex必须是一个在当前的activity
你总不希望你看文章看到一半,
或是看影片看到一半突然有其他APP跳出dialog打扰你吧!
※ 引述《ms0561188 (说说TIES OR CONDITIONS )》之铭言:
: 各位大大好 最近刚学习android
: 有遇到以下的问题,麻烦请高手帮忙解救一下
: 1.最近有点不懂context到底是甚麽,有google了一下似乎是属於Activity的父类别
: 例如 Toast的写法可以写成
: toast = Toast.makeText(getApplicationContext(),
: "文字", Toast.LENGTH_LONG);
: 却又可以写成
: Toast function = Toast.makeText(MainActivity.this,"文字",Toast.LENGTH_SHORT);
: 想知道MainActivity.this和getApplicationContext()的差别
: 2.也是类似的问题
: 下段程式执行会出现错误
: AlertDialog.Builder aa = new AlertDialog.Builder(getApplicationContext())
: 而下段程式却会成功
: AlertDialog.Builder aa = new AlertDialog.Builder(MainActivity.this);
: 想知道为什麽
: 附上log
: android.view.WindowManager$BadTokenException: Unable to add window -- token
: null is not for an application
: 烦请高手帮忙解惑 感恩不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.219.62
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1405523678.A.722.html
1F:推 ms0561188:谢谢大大耐心帮我解答!!! 不过我是初学者~ 可能还需要 07/17 10:34
2F:→ ms0561188:领会一下才会比较懂 07/17 10:34
3F:推 rj9rj9123:推 07/19 12:40