爲什麼Android UI在主線程上運行而不在其他線程上運行? 爲什麼只專注於UI?爲什麼android UI在主線程上運行?
(有人會說它的運行服務也是如此,但我不會購買它) 如果發生這種情況,應用程序退出時服務將會結束,因爲主線程會被進程終止,根據我的說法,它運行在操作系統空間像Windows服務,我猜))
爲什麼不能改變其他線程的用戶界面? (不在UI線程上發佈工作) 它是硬件約束還是什麼?爲什麼這樣設計?
爲什麼Android UI在主線程上運行而不在其他線程上運行? 爲什麼只專注於UI?爲什麼android UI在主線程上運行?
(有人會說它的運行服務也是如此,但我不會購買它) 如果發生這種情況,應用程序退出時服務將會結束,因爲主線程會被進程終止,根據我的說法,它運行在操作系統空間像Windows服務,我猜))
爲什麼不能改變其他線程的用戶界面? (不在UI線程上發佈工作) 它是硬件約束還是什麼?爲什麼這樣設計?
爲什麼不能從其他線程更改UI?
Android的設計圍繞2005 - 2007年移動處理器,這是今天的CPU的功率的約2%。試圖允許多個線程操縱UI的同步開銷被認爲太高。在這些情況下,他們使用了一種通用的方法:指定一個特殊線程作爲UI更新的線程,並在其他線程上嘗試失敗的更新。
有人會說,它的運行服務以及
一般情況下,對象不上線運行 - 方法的線程上運行。
在主應用程序線程上調用所有Android組件上的生命週期方法。因此,在主應用程序線程上調用Service
,onCreate()
,onStartCommand()
,onBind()
和onDestroy()
。
如果發生這種情況時,服務應用程序退出
應用在Android中沒有「退出」將結束。
因爲主線程獲取與處理
進程終止時被殺,在它的所有部件也是「被殺」,因此這是這一過程中的服務會自動消失。
從谷歌文檔。 已啓動 當應用程序組件(如活動)通過調用startService()啓動服務時,服務將「啓動」。一旦開始,服務可以無限期地在後臺運行,即使啓動它的組件被銷燬。通常,啓動的服務執行單個操作,並且不會將結果返回給調用者。例如,它可能通過網絡下載或上傳文件。操作完成後,服務應該自行停止。 當他們說「即使啓動它的組件被破壞」時,它們是指應用程序嗎? – Nishant
@Nishant:不,由「組件」表示「組件」。通常,啓動服務的組件是一個活動或一個'BroadcastReceiver',儘管在某些情況下服務啓動另一個服務。 – CommonsWare