作者ms0561188 (说说TIES OR CONDITIONS )
看板AndroidDev
标题[问题] 关於context一些相关问题
时间Wed Jul 16 15:31:22 2014
各位大大好 最近刚学习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), 来自: 210.61.163.55
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1405495888.A.022.html
1F:→ erttyy8821:拿到Contex的对象不同 07/16 15:52
2F:→ ms0561188:请问甚麽是对象不同,我不懂哪时候该用哪个.. 07/16 16:09
3F:→ erttyy8821:activityContext & applicationContext 07/16 16:47
4F:→ ms0561188:所以要看我的程式是属於哪个父类别吗? 07/16 17:58
5F:推 Deltaguita: 应该说acitvity的context 才有权限跳dailog 07/16 20:09
6F:→ Deltaguita:如果applicationContext可以跳dialog是蛮可怕的 使 07/16 20:30
7F:→ Deltaguita:用者体验会很差 07/16 20:30
8F:推 KeySabre:有兴趣可以爬window manager的机制 懒得抓整包的话 可 07/17 03:01
9F:→ KeySabre:以用grepcode网站 07/17 03:01
10F:→ ms0561188:\感谢!! 07/21 09:18