[問題] 關於context一些相關問題

看板AndroidDev作者 (說說TIES OR CONDITIONS )時間10年前 (2014/07/16 15:31), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/2 (看更多)
各位大大好 最近剛學習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://www.ptt.cc/bbs/AndroidDev/M.1405495888.A.022.html

07/16 15:52, , 1F
拿到Contex的對象不同
07/16 15:52, 1F

07/16 16:09, , 2F
請問甚麼是對象不同,我不懂哪時候該用哪個..
07/16 16:09, 2F

07/16 16:47, , 3F
activityContext & applicationContext
07/16 16:47, 3F

07/16 17:58, , 4F
所以要看我的程式是屬於哪個父類別嗎?
07/16 17:58, 4F

07/16 20:09, , 5F
應該說acitvity的context 才有權限跳dailog
07/16 20:09, 5F

07/16 20:30, , 6F
如果applicationContext可以跳dialog是蠻可怕的 使
07/16 20:30, 6F

07/16 20:30, , 7F
用者體驗會很差
07/16 20:30, 7F

07/17 03:01, , 8F
有興趣可以爬window manager的機制 懶得抓整包的話 可
07/17 03:01, 8F

07/17 03:01, , 9F
以用grepcode網站
07/17 03:01, 9F

07/21 09:18, , 10F
\感謝!!
07/21 09:18, 10F
文章代碼(AID): #1JnYfG0Y (AndroidDev)
文章代碼(AID): #1JnYfG0Y (AndroidDev)