[問題] 關於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