在我的服務中,我使用addView()
添加了一個視圖到WindowManager
。當我準備隱藏視圖時,我使用View
參考號碼撥打removeView()
。這很有用 - 大部分時間。跟蹤添加到WindowManager的視圖(無findViewById()函數?)
我有偶爾的強制關閉報告,表示該視圖未附加到WindowManager
。這是有道理的。問題是我認爲該服務正在被Android殺死,當它是隱藏視圖的時候,它會嘗試刪除錯誤的View
。
我已經嘗試檢查視圖爲空,但顯然它不是在這一點上,它只是不是附加到WindowManager
。看起來,如果查看引用丟失,則無法再次訪問它。
我怎樣才能在WindowManager
本身上得到相當於findViewById()
?如果我的服務停止(殺死),View
是否自動從WindowManager
中刪除?有沒有一種方法可以存儲對View
的引用,以便如果服務停止,我仍然可以在以後刪除View
(我也試圖避免泄漏View
)?
我知道這是舊的,但你爲什麼要從服務中與UI進行交互?!? – Dori
@Dori我想覆蓋來電屏幕,但在Android中沒有這樣做的機制(到目前爲止)。最好的解決方案是在來電屏幕上顯示一個視圖,並且一個活動對此不可靠。服務讓我可以跟蹤視圖並在不再需要時隱藏視圖。 – Jesta