android分發(fā)事件 安卓的事件分發(fā)

【Android】ANR是如何產(chǎn)生的?

而ANR事件就是在 InputDispatcher 中產(chǎn)生的。InputDispatcher 內(nèi)部維護(hù)了一個線程 InputDispatcherThread ,輸入事件在這個線程中進(jìn)行處理。這個線程在 InputManager 中進(jìn)行創(chuàng)建和啟動。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、網(wǎng)站制作與策劃設(shè)計,五蓮網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:五蓮等地區(qū)。五蓮做網(wǎng)站價格咨詢:18982081108

引發(fā)ANR的原因:在Android里,應(yīng)用程序的響應(yīng)性是由Activity Manager和WindowManager系統(tǒng)服務(wù)監(jiān)視的 。

當(dāng)應(yīng)用發(fā)生 ANR 之后,系統(tǒng)會收集許多進(jìn)程,來 dump 堆棧,從而生成 ANR Trace 文件。收集的第一個,也是一定會被收集到的進(jìn)程,就是發(fā)生 ANR 的進(jìn)程。

Android應(yīng)用中的ANR(ApplicationNotResponding)指的是當(dāng)應(yīng)用程序無法響應(yīng)用戶輸入或事件,導(dǎo)致程序停頓、出現(xiàn)卡頓甚至崩潰的情況。ANR問題可能影響用戶的使用體驗(yàn)和造成不必要的損失。

Android應(yīng)用程序通常運(yùn)行在一個main線程。如果主線程里占用了太長的時間的話,程序沒有機(jī)會處理輸入或者Intent廣播就會引發(fā)ANR無響應(yīng)。因此,主線程里的任何方法都盡可能少做事情。

ANR是Application Not Responding的簡稱,主要是說應(yīng)用程序出現(xiàn)無響應(yīng)的情況。

Android事件分發(fā)機(jī)制

1、Android中對視圖的Touch事件進(jìn)行分發(fā)處理。

2、android的view管理是以window為單位的,每個window對應(yīng)一個view樹。Window機(jī)制不僅管理著view的顯示,也負(fù)責(zé)view的事件分發(fā)。

3、DecorView.java Activity.java ViewGroup.java View.java 通過該方法,接收器receiver的onKeyDown、onKeyUp、onKeyLongPress、onKeyMultiple等方法將被回調(diào)。

Android-View的事件分發(fā)及攔截-父控件和子控件都處理觸摸事件的方式

1、(1) 事件從Activity.dispatchTouchEvent()開始傳遞,只要沒有被停止或攔截,從最上層的View(ViewGroup)開始一直往下(子View)傳遞。子View可以通過onTouchEvent()對事件進(jìn)行處理。

2、Android 事件傳遞機(jī)制是 先分發(fā)再處理 ,先由外部的 View 接收,然后依次傳遞給其內(nèi)層的 View,再從最內(nèi)層 View 反向依次向外層傳遞。

3、事件的起源:我們都知道觸摸事件是從Activity的dispatchTouchEvent方法開始的。再調(diào)用父類的super.dispatchTouchEvent(ev),事件向派發(fā)。

4、當(dāng)為true的時候則說明父控件(也就是viewPager)不攔截事件,點(diǎn)擊事件由子控件(也就是webView)來處理,反之為false的時候,父控件則攔截點(diǎn)擊事件,子控件無法響應(yīng)點(diǎn)擊事件。

5、View類實(shí)現(xiàn)了KeyEvent.Callback接口中的一系列回調(diào)函數(shù),因此,基于回調(diào)的事件處理機(jī)制通過自定義View來實(shí)現(xiàn),自定義View時重寫這些事件處理方法即可。Handler是一個消息分發(fā)對象。

標(biāo)題名稱:android分發(fā)事件 安卓的事件分發(fā)
當(dāng)前路徑:http://bm7419.com/article4/dgeccie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化虛擬主機(jī)、域名注冊網(wǎng)站維護(hù)、電子商務(wù)小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)