我有工作代碼,但我的解決方案看起來並不理想。我的問題是,如果存在這樣的comon設計模式,我可以使用它。共享覆蓋視圖的設計模式
我有4個不同的活動,所有做音頻播放。我有一個管理播放的公共類(Player
),因此當活動想要播放時,它會調用Player
的唯一實例。
無論哪Activity
目前正在積極想顯示與播放信息相同的重疊視圖/控制等,這由我創造一個PlayerView.xml佈局解決了我include
每個Activity
佈局。
最後我有一個PlayerListener
我在播放器上註冊以接收播放通知。當PlayerListener
收到通知時,它會修改當前活動的Activity
中的PlayerView
(例如,將播放曲目名稱設置爲TextView
,PlayerView
)。
爲了使PlayerListener
知道哪個Activity
是當前激活它有一個方法setParent(ViewGroup parent)
其無論是在創作和onResume
每個Activity
調用自己的佈局父設置爲監聽器。 PlayerListener
然後爲PlayerView.xml中的每個組件(例如Button)添加監聽器,並從之前的Activity
中刪除父監聽器。
對我來說,我對活動之間的每次更改都必須添加/刪除一堆聽衆,但(afaiu)因爲每個include
創建了引用佈局的副本,這意味着PlayerView
在佈局中是唯一的包括我需要這樣做(可能跳過聽衆的刪除,但這可能會擴大到更多的活動時,可能會產生性能問題)。
我知道我可以在一個地方做一個Activity超類,但是這並沒有消除不斷增加/刪除偵聽器的潛在問題。有沒有更好的,標準的做法?
謝謝!
我認爲片段會有相同的問題添加/刪除監聽器時,他們之間共享不同的活動,但也許我誤解了..? – jola 2015-03-15 06:35:04