色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在軟件開發中怎么樣去避免ANR?

Dbwd_Imgtec ? 來源:未知 ? 作者:工程師郭婷 ? 2018-07-31 09:31 ? 次閱讀

一:什么是ANR

如果應用程序不能響應用戶的輸入了,那么就可以說應用ANR了。

如果需要運行一個耗時較長的操作的時候,不要把這個任務放在UI線程上運行,而是單獨創建一個線程運行那些操作。

以下情況會出現ANR提示對話框:

5秒內對一個輸入動作沒有反應。

一個BroadcastReceiver在10秒內沒有完成運行。

二:如何避免ANR

activity的關鍵的生命周期方法: onCreate 和 onResume方法上盡可能處理越少越好的事情。

下面列舉的操作都是長時間運行的:網絡工作、數據庫操作、精確的計算,例如重新定制圖片(應該在單獨的工作線程中)、或者通過異步請求操作數據庫的情況下。

最有效的創建一個工作線程來執行長時間操作的是Asynctask類。如果你非要自己創建一個自己的Thread或者HandlerThread類,你應該設置這個類的屬性為"background",通過調用Process.setThreadPriority() ,填上THREAD_PRIORITY_BACKGROUND參數。如果你不設置低優先級,那么你的線程仍然有可能減慢你的應用,因為它默認運行的優先級和你的UI線程的優先級一樣。當你實現Thread或HandlerThread方法的時候,確定你的UI線程不會在等待工作線程結束的過程中被阻塞,不要調用Thread.wait()或者 Thread.sleep()。你的應用主線程不應該因為等待子線程完成而阻塞,而是應該提供一個Handler去接受其他線程完成后的結果。這樣設計你的應用可以保證你的應用仍然能夠響應用戶的輸入,避免ANR。

接受BroadcastReciver的執行時間,約束它的執行時間,主要進行的操作是保存設置或者注冊一個通知,這樣的話,才能夠避免當其他方法調用UI線程的時候,應用程序在執行長耗時的方法。

如果非要在接收Broadcast后執行長時間的操作,可以啟動一個IntentService來執行。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • anr
    anr
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2127

原文標題:Android開發之如何避免ANR(Keeping Your App Responsive)

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式軟件開發的程序架構

    嵌入式軟件開發,包括單片機開發軟件架構對于開發人員是一個必須認真考慮的問題。
    發表于 02-02 06:58

    教你怎樣提高STM32軟件開發效率

    教你怎樣提高STM32軟件開發效率
    發表于 02-21 07:22

    可視化語言技術軟件開發的應用

    可視化語言技術軟件開發的應用:可視化語言技術比一維文本語言描述軟件組成方面具有優越性.由于圖表和圖形概念在系統建模
    發表于 10-31 09:02 ?5次下載

    ARM嵌入式軟件開發

    ARM嵌入式軟件開發ARM嵌入式軟件開發ARM嵌入式軟件開發
    發表于 01-15 17:29 ?65次下載

    面向對象方法汽車排放測試系統軟件開發的應用

    面向對象方法汽車排放測試系統軟件開發的應用
    發表于 01-22 13:38 ?12次下載

    基于嵌入式軟件開發構件技術的研究

    基于嵌入式軟件開發構件技術的研究
    發表于 10-30 15:36 ?6次下載
    基于嵌入式<b class='flag-5'>軟件開發</b><b class='flag-5'>中</b>構件技術的研究

    JAVA計算機軟件開發應用

    在當前計算機軟件開發中比較常用的編程語言就是JAVA。JAVA編程語言也是一種面向對象語言,是具備開發價值的源代碼,可以靈活應用在各種操作平臺中。雖然市場存在不少的編程語言,但是J
    發表于 11-06 15:02 ?13次下載
    JAVA<b class='flag-5'>在</b>計算機<b class='flag-5'>軟件開發</b><b class='flag-5'>中</b>應用

    低代碼平臺ERP軟件開發的作用

    很多人認為低代碼開發平臺的出現顛覆了傳統的軟件開發模式,對軟件開發行業造成沖擊,其實低代碼開發平臺的出現只是提高了軟件開發的效率,并不是要顛
    發表于 05-09 11:16 ?870次閱讀

    基于模型的嵌入式軟件開發

    對工具的分類和資質審核通過認證的方式發放證書應對復雜系統時,軟件開發人員的工作效率降低解決復雜軟件開發效率低下的路徑:模塊化開發 (一個復雜的系統包含很多模塊,每個模塊都比較簡單,這
    發表于 11-03 11:21 ?9次下載
    基于模型的嵌入式<b class='flag-5'>軟件開發</b>

    汽車軟件開發流程介紹

    汽車軟件開發軟件開發流程是軟件工程的核心,因為它們為軟件開發實踐“提供了一個骨架并確保了它
    發表于 08-15 12:03 ?1.5w次閱讀

    軟件開發外包有哪些坑要注意?

    軟件開發外包公司并不比自己招人做的軟件差,甚至比自己招人做得好,那么選擇軟件開發外包公司會有哪些坑必須要注意? ? 今天為大家分享幾種軟件外包
    的頭像 發表于 10-11 18:36 ?1434次閱讀

    軟件開發的流程和方法有哪些?

    軟件開發是根據客戶要求構建出軟件系統或者系統軟件部分,一般是通過程序設計語言實現的,比如C/C++/JAVA/JSP/ASP等開發語言。
    的頭像 發表于 12-27 10:56 ?2115次閱讀
    <b class='flag-5'>軟件開發</b>的流程和方法有哪些?

    軟件開發必讀!華為云軟件開發生產線 CodeArts 深度體驗指南

    都有什么功能?軟件開發能起到什么作用?CodeArts?snap 是否有介紹的那般神奇? 本文將為各位開發者詳細介紹如何從了解學習到體驗掌握華為云
    的頭像 發表于 08-25 13:43 ?1237次閱讀
    <b class='flag-5'>軟件開發</b>必讀!華為云<b class='flag-5'>軟件開發</b>生產線 CodeArts 深度體驗指南

    嵌入式軟件開發軟件開發的區別

    嵌入式軟件開發軟件開發是兩個不同的概念,它們一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發嵌入
    的頭像 發表于 01-22 15:27 ?2283次閱讀

    緩存技術軟件開發的應用

    現代軟件開發,隨著數據量的爆炸性增長和用戶對響應速度的高要求,緩存技術成為了提升系統性能的重要手段。緩存技術通過將數據存儲離用戶更近的位置,減少數據訪問延遲,提高數據處理速度,從
    的頭像 發表于 12-18 09:32 ?225次閱讀
    主站蜘蛛池模板: 久久精品综合网中文字幕| OLDMAN老头456 TUBE| 亚洲成人一区二区| 丝袜美女被啪啪不带套漫画| 妻中蜜在线播放| 青青青青草原国产免费| 欧美大jiji| 啪啪激情婷婷久久婷婷色五月| 暖暖 日本 视频 在线观看免费| 免费视频国产在线观看网站| 蜜桃日本免费观看MV| 年轻的女职工在线观看| 欧美日韩无套内射另类| 欧美国产成人在线| 日本久久免费大片| 色大姐综合网| 邪恶肉肉全彩色无遮盖| 亚洲深夜在线| 中文字幕A片视频一区二区| 69日本人xxxx16—18| 99久久无码热高清精品| 超碰在线公开视频| 国产精品成人免费| 护士美女照片| 快播萝莉影院| 青青热久精品国产亚洲AV无码| 日本一二三区在线视频| 无人影院在线播放视频| 亚洲精品在线影院| 4虎影院午夜在线观看| qovd电影| 国产人妻人伦精品A区| 黑兽在线观看高清在线播放樱花| 久久精品中文字幕| 欧美乱妇狂野欧美在线视频| 三级全黄的视频| 亚洲狠狠网站色噜噜| 2019午夜75福利不卡片在线| 北原夏美 快播| 国产亚洲日韩另类在线播放| 久久天天综合|