Android外掛程式中使用Dialog遇到的崩潰問題

2021-09-24 07:04:26 字數 756 閱讀 5717

在android外掛程式中,經常會遇到conetxt、資源等一些問題,今天再使用外掛程式中遇到了使用dialog系統崩潰的問題,具體為:在有的系統上,桌面的一些功能是以外掛程式的形式存在的,可以理解為宿主(桌面)的context和外掛程式的context是不一樣的,這個時候在外掛程式中使用dialog會存在一些問題。

android系統的原生彈框dialog需要傳入乙個activity作為context,因為dialog是需要附著在乙個decorview上的,也就是需要通過getwindow的方式來獲得,但是如果是外掛程式的話,通過getactivity方式獲取的context並不是外掛程式本身的conetxt,而是桌面的actiivty。相當於使用了乙個並不屬於自己的上下文去獲取相應的res資源,這就存在在初始化dialog過程,資源找不到而崩潰。

怎麼解決也是很好解決,就是把context給更換為外掛程式的context,這樣就不存在資源找不到的情況了,但是會出現其他的狀況,比如dialog是有乙個style主題對應的,如果傳入外掛程式的context的話,外掛程式就去尋找與之對應的style主題,由於內部外掛程式框架的問題,可能會造成這個獲取到的主題有些偏差,比如android:windowisfloaying屬性,這個屬性設為true的話表示dialog浮現在actiivty上嗎,設為false的話,表示不浮現在activity之上,具體顯示差異就是true的話dialog顯示在activity中間,false的話把actiivty遮住,顯示在螢幕的左上角。

可以使用popupwindow來替換dailog,顯示效果是一樣的,而且是不需要傳入乙個activity。

寫了2個dia外掛程式

最近dia用的比較多,想從 生成乙個dia圖,發現有dia的python外掛程式,有一些pydiadoc.py 等,但是發現無法使用,悲劇。雖然pydia的 有10來個可用的,但是dia中使用python的資料非常非常少 網上能找到的總共就2頁紙,這次又研究研究研究,終於知道怎麼在dia中使用pyt...

Android 小公尺手機限制系統彈出dialog

最近做到乙個功能,在後台開啟乙個服務 我用的intentservice 不停迴圈執行乙個任務,當條件達成以後,直接彈出乙個彈窗,然後退出應用 彈窗 首先想到的肯定是dialog,因為是乙個全域性的彈窗,我就沒想繫結到activity上,所以我就給他新增乙個屬性dialog.getwindow set...

Android中使用全屏

在開發android研發時,最開始一般都會有個全屏顯示的閃屏,下面提供實現全屏的兩種方法 1 通過 實現 去掉標題欄 this.requestwindowfeature window.feature no title 全屏顯示 this.getwindow setflags windowmanage...