鍍金池/ 問答/Android/ 一個(gè)app有多少個(gè)window?

一個(gè)app有多少個(gè)window?

我目前的理解是:
一般場景下常見的(忽略menu和狀態(tài)欄,一般用不到):
application+activities+(dialog)+(popupwindow)+(toast)+?
所以是:1+activities+(1)+(1)+(1)+?
?:指還有待補(bǔ)充的。
():指可能會(huì)出現(xiàn)的
看源碼,我覺得dialog,toast的window都是new 出來的phonewindow,應(yīng)該和掛載在當(dāng)前activity,其所依附的window不是同一個(gè)吧?
有點(diǎn)懷疑自己,求賜教,謝謝

回答
編輯回答
冷咖啡

樓主,應(yīng)該是看了 《Android開發(fā)藝術(shù)探索》當(dāng)中的第八章,對Window的理解吧? 作者在后面留了一個(gè)問題就是樓主你提的問題:

這里我也看了,從Activity啟動(dòng)的attach就能看出來是無限的,因?yàn)閃indow的唯一實(shí)現(xiàn)類是PhoneWindow,比如說我現(xiàn)在啟動(dòng)一個(gè)Activity,在ActivityThread中開始,調(diào)用啟動(dòng)Activity,到最后的實(shí)例化完成Activity之后會(huì)調(diào)用Activity的 attach方法,該方法中就對 PhoneWindow做了實(shí)例化

final void attach(Context context, ActivityThread aThread,
            Instrumentation instr, IBinder token, int ident,
            Application application, Intent intent, ActivityInfo info,
            CharSequence title, Activity parent, String id,
            NonConfigurationInstances lastNonConfigurationInstances,
            Configuration config, String referrer, IVoiceInteractor voiceInteractor,
            Window window) {
        ···
        mWindow = new PhoneWindow(this, window);
        ···
    }

可以私信探討!

2017年12月4日 12:58
編輯回答
掛念你

誒,問了幾個(gè)問題都沒有回應(yīng),是我的問題太簡單了,還是沒有什么意義?感覺好冷清

2017年3月1日 23:51