android监听器作用,android - 监听器和接收器(Android)有什么区别?
例如,我需要一個BroadcastReceiver來獲取這些事件:
重新啟動或關機
屏幕開或關
電池狀態(電壓,接通電源,溫度)
物理按鈕按下(相機,媒體等)
但是我需要監聽器來獲取以下事件:
用于傳感器事件(加速度,磁場,方向,接近度,溫度,光照水平等)的EventListener
用于位置事件的LocationListener(網絡位置,GPS)
似乎接收方和監聽方都存在,以便我可以接收事件。除了明顯的語義差異之外,兩者之間還有什么區別?我可以在其中一項上做其他事情,而不能在另一項上做,尤其是在屏幕關閉時我可以占用并運行多少CPU方面?為什么出于接收事件的目的有兩種完全不同的構造?
最佳答案
兩者之間的差異如此之多,它們對某些事物的回應是唯一的相似之處之一。
差異:
BroadcastReceivers接收Intent,而Listener基本上可以做任何事情,因為它沒有定義的目的,所以只是一個命名約定。例如,在開發人員網站上搜索"BroadcastReceiver",然后搜索"Listener"
BroadcastReceivers剛收到一個非直接的Intent Broadcast,監聽器被顯式調用。
BroadcastReceiver是它自己定義的類,因為它具有明確的目的(接收Intent),而監聽器可以是任何東西-它們通常是interface,并且提供它們是為了使回調可以從一個類到另一個類進行。
BroadcastReceivers通常用于全局的系統范圍的事件,特定事件的監聽器(即,位置傳感器除非有某些東西(例如要向其發布的監聽器),否則不應該每秒發送一次位置更新。 -這很重要,它影響到一切,因此應廣播給所有感興趣的接收者。
事件BroadcastReceiver接收的事件通常是非連續事件(一次觸發),而監聽器(取決于它們的工作)可以將用于持續更新(連續)。 如果在 list 中聲明了
BroadcastReceivers,則系統可以將其實例化。僅動態創建監聽器(因此通過代碼)。
CPU/功耗的使用取決于兩者的實現,尤其是因為如上所述,監聽器可以是或。
Are there things I can do in one but not the other, especially in regards to things like how much CPU I can take and running while the screen is off?
BroadcastReceivers僅具有10 seconds of guaranteed execution time。監聽器沒有特定的用途,因此沒有此限制。
您肯定無法從BroadcastReceiver做的事情:
In particular, you may not show a dialog or bind to a service from
within a BroadcastReceiver.
可能還有更多-這就是我想出的。
總結
以上是生活随笔為你收集整理的android监听器作用,android - 监听器和接收器(Android)有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php项目课题,php课题
- 下一篇: android handle 阻塞,An