作者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://www.ptt.cc/bbs/AndroidDev/M.1405523678.A.722.html
推 ms0561188:謝謝大大耐心幫我解答!!! 不過我是初學者~ 可能還需要 07/17 10:34
→ ms0561188:領會一下才會比較懂 07/17 10:34
推 rj9rj9123:推 07/19 12:40