導航:首頁 > 操作系統 > android更新主線程

android更新主線程

發布時間:2024-09-03 06:55:03

android 怎麼執行主線程

可以。你這個問題是,android 能不能在 非主activity的 類B中,調用activity A的方法。
在B做一個activity的 變數。在B構造函數中 對context參數 保存,記得要對context 強制轉換類型 變為主線程的 activity。之後在B中就能靠activity變數調用 A的方法。
不過你這個是多線程,要用synchronize做好共享數據保護工作。

② 為什麼說Android主線程是線程不安全的,既然不安全為什麼要在主線程中更新UI,有點暈 求大師解答

UI線程及Android的單線程模型原則當應用啟動,系統會創建一個主線程(main thread)。這個主線程負責向UI組件分發事件(包括繪制事件),也是在這個主線程里,應用和Android的UI組件(components from the Android UI toolkit (components from the android.widget and android.view packages))發生交互。

當App做一些比較重(intensive)的工作的時候,除非合理地實現,否則單線程模型的performance會很poor。特別的是,如果所有的工作都在UI線程,做一些比較耗時的工作比如訪問網路或者資料庫查詢,都會阻塞UI線程,導致事件停止分發(包括繪制事件)。對於用戶來說,應用看起來像是卡住了,更壞的情況是,如果UI線程blocked的時間太長(大約超過5秒),用戶就會看到ANR(application not responding)的對話框。

另外,Andoid UI toolkit並不是線程安全的,所以不能從非UI線程來操縱UI組件。必須把所有的UI操作放在UI線程里,所以Android的單線程模型有兩條原則:
1.不要阻塞UI線程。
2.不要在UI線程之外訪問Android UI toolkit(主要是這兩個包中的組件:android.widget and android.view)。

③ android 更新ui是在主線程還是子線程

在一個Android 程序開始運行的時候,會單獨啟動一個Process。默認的情況下,所有這個程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的兩種,除此之外還有Content Provider和Broadcast Receiver)都會跑在這個Process。 一個Android 程序默認情況下也只有一個Process,但一個Process下卻可以有許多個Thread。在這么多Thread當中,有一個Thread,我們稱之為UI Thread。UI Thread在Android程序運行的時候就被創建,是一個Process當中的主線程Main Thread,主要是負責控制UI界面的顯示、更新和控制項交互。在Android程序創建之初,一個Process呈現的是單線程模型,所有的任務都在一個線程中運行。因此,我們認為,UI Thread所執行的每一個函數,所花費的時間都應該是越短越好。而其他比較費時的工作(訪問網路,下載數據,查詢資料庫等),都應該交由子線程去執行,以免阻塞主線程。 那麼,UI Thread如何和其他Thread一起工作呢?常用方法是: 誕生一個主線程的Handler物件,當做Listener去讓子線程能將訊息Push到主線程的Message Quene里,以便觸發主線程的handlerMessage()函數,讓主線程知道子線程的狀態,並在主線程更新UI。

閱讀全文

與android更新主線程相關的資料

熱點內容
人道pdf 瀏覽:610
分類視覺演算法 瀏覽:257
android彈出鍵盤位置 瀏覽:451
安卓怎麼下載愛思助 瀏覽:985
安卓機的呼叫怎麼開啟 瀏覽:355
騰訊伺服器硬碟什麼價 瀏覽:841
交換機關閉所有埠命令 瀏覽:91
程序員可以開網店嗎 瀏覽:115
演算法工程師面試經驗 瀏覽:686
有什麼好用的陪聊app 瀏覽:698
什麼是備中心伺服器 瀏覽:144
linux配置本地yum源 瀏覽:539
半導體器件與工藝pdf 瀏覽:528
超大文件解壓太慢 瀏覽:861
微光app主頁的愛心代表什麼意思 瀏覽:563
程序員和餃子做飯 瀏覽:307
美團app的點擊騎車在哪裡 瀏覽:723
程序員標配條件 瀏覽:211
免費電腦解壓app排行榜前十名 瀏覽:189
順序表查找演算法 瀏覽:463