簡單說一下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