簡體   English   中英

一個應用程序可以只包含一個廣播接收器嗎?

[英]Can an app consist of just one Broadcast Receiver?

我有一個應用程序,它有一個廣播接收器,用於偵聽特定意圖,然后執行一些代碼。 執行的這段代碼是否需要在其自己的單獨服務中,或者廣播接收器是否會啟動它自己的線程?

當前正在執行 BroadcastReceiver 的進程(即當前在其 onReceive(Context, Intent) 方法中運行代碼)被認為是前台進程,並且將由系統保持運行,除非在極端 memory 壓力的情況下。

從 onReceive() 返回后,BroadcastReceiver 不再處於活動狀態,它的托管過程僅與在其中運行的任何其他應用程序組件一樣重要。 這一點尤其重要,因為如果該進程僅托管 BroadcastReceiver(用戶從未或最近未與之交互的應用程序的常見情況),則在從 onReceive() 返回時,系統將認為其進程為空並主動終止以便資源可用於其他更重要的流程。

這意味着對於運行時間較長的操作,您經常將服務與 BroadcastReceiver 結合使用,以在整個操作期間保持包含進程的活動狀態。

有關更多解釋,請檢查:

http://developer.android.com/reference/android/content/BroadcastReceiver.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM