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

楼主: Deltaguita (伯利兹)   2014-07-16 23:14:35
简单说一下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
作者: ms0561188 (蟑螂吃卤蛋)   2014-07-17 10:34:00
谢谢大大耐心帮我解答!!! 不过我是初学者~ 可能还需要领会一下才会比较懂
作者: rj9rj9123 (MISS)   2014-07-19 12:40:00

Links booklink

Contact Us: admin [ a t ] ucptt.com