[问题] 关于context一些相关问题

楼主: ms0561188 (蟑螂吃卤蛋)   2014-07-16 15:31:22
各位大大好 最近刚学习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
作者: erttyy8821 (侠)   2014-07-16 15:52:00
拿到Contex的对象不同
楼主: ms0561188 (蟑螂吃卤蛋)   2014-07-16 16:09:00
请问什么是对象不同,我不懂哪时候该用哪个..
作者: erttyy8821 (侠)   2014-07-16 16:47:00
activityContext & applicationContext
楼主: ms0561188 (蟑螂吃卤蛋)   2014-07-16 17:58:00
所以要看我的程式是属于哪个父类别吗?
作者: Deltaguita (伯利兹)   2014-07-16 20:09:00
应该说acitvity的context 才有权限跳dailog如果applicationContext可以跳dialog是蛮可怕的 使用者体验会很差
作者: KeySabre (KeySabreur)   2014-07-17 03:01:00
有兴趣可以爬window manager的机制 懒得抓整包的话 可以用grepcode网站
楼主: ms0561188 (蟑螂吃卤蛋)   2014-07-21 09:18:00
\感谢!!

Links booklink

Contact Us: admin [ a t ] ucptt.com