1
我想在ListView片段或其他(嵌套)片段中發生某些事情時,刷新ListView(自定義類)中的特定行。我目前使用這個圖案Android IntentFilter性能
(News
是一個自定義類NewsView
正在顯示):
NewsView
構造:在我的onReceive- 寄存器的BroadcastReceiver用的IntentFilter例如
"UPDATE_NEWS_ITEM"
- 反序列化
News
項目和比較項目ID
- 寄存器的BroadcastReceiver用的IntentFilter例如
- 動作發生在某處
- 我創建了Intent(「UPDATE_NEWS_ITEM」),並將
News
項添加爲Serializable Extra。
- 我創建了Intent(「UPDATE_NEWS_ITEM」),並將
這意味着,每一個具有NewsView
反序列化從意圖News
,因此這種方法具有一個比特的開銷。另一方面,我可以使用IntentFilter(如"UPDATE_NEWS_ITEM_154"
)爲每個NewsView
註冊一個廣播接收器,其中154是該項目的ID。那麼廣播意圖只能達到一個接收者,並且看起來更有效。
註冊這麼多廣播接收機有什麼不足嗎?或者Android會很樂意應付潛在的數百個?
有沒有什麼不能使用'Interface'接收器和列表視圖類之間,或直接在類中創建接收器的實例,並使用'registerReceiver'和'unregisterReceiver'原因? – Simon
我簡化了事情,有多個類顯示'新聞'和多個類生成刷新,所以我認爲不是。 – Axarydax
當然,在所有這些類中實現一個回調監聽器沒有比接收一個意圖更多的工作嗎?如果不知道你的體系結構,那麼你可以創建一個基類Activity,然後從這個監聽器繼承它? – Simon