Android開發(fā)中那些需要注意的坑
這個(gè)是看知乎的時(shí)候發(fā)現(xiàn)的一個(gè)問題,感覺挺有意思,就將自己遇到的坑記錄下來。
1、Andorid L theme colorPrimary 不能使用帶有alpha的顏色值,否則會(huì)有異常拋出, 直接判斷了是否alpha是否等于0或者255,其他都會(huì)異常
@Override protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) { if (mParent == null) { super.onApplyThemeResource(theme, resid, first); } else { try { theme.setTo(mParent.getTheme()); } catch (Exception e) { // Empty } theme.applyStyle(resid, false); } // Get the primary color and update the TaskDescription for this activity if (theme != null) { TypedArray a = theme.obtainStyledAttributes(com.android.internal.R.styleable.Theme); int colorPrimary = a.getColor(com.android.internal.R.styleable.Theme_colorPrimary, 0); a.recycle(); if (colorPrimary != 0) { ActivityManager.TaskDescription v = new ActivityManager.TaskDescription(null, null, colorPrimary); setTaskDescription(v); } } } /** * Creates the TaskDescription to the specified values. * * @param label A label and description of the current state of this task. * @param icon An icon that represents the current state of this task. * @param colorPrimary A color to override the theme's primary color. This color must be opaque. */ public TaskDescription(String label, Bitmap icon, int colorPrimary) { if ((colorPrimary != 0) && (Color.alpha(colorPrimary) != 255)) { throw new RuntimeException("A TaskDescription's primary color should be opaque"); } mLabel = label; mIcon = icon; mColorPrimary = colorPrimary; }
2、android 5.0花屏,由于過度繪制導(dǎo)致,關(guān)閉硬件加速, 尤其是使用webview后,可能會(huì)有大概率出現(xiàn)。
3、華為手機(jī)被KILL一系列問題
用戶可以設(shè)置某個(gè)應(yīng)用是否后臺(tái)保護(hù),按照華為的功能說明,理解為,如果不保護(hù),那鎖屏后程序?qū)o法保持運(yùn)行,也就是進(jìn)程可能被KILL
新安裝應(yīng)用后,華為會(huì)給出選項(xiàng),是否保持,這個(gè)默認(rèn)選項(xiàng)上存在問題,有的應(yīng)用默認(rèn)不允許,有的應(yīng)用默認(rèn)就允許。
關(guān)于耗電高被KILL問題。
關(guān)于鎖屏后網(wǎng)絡(luò)被切斷問題。鎖屏就算保護(hù),而網(wǎng)絡(luò)或者SOCKET也可能被主動(dòng)切斷。
華為自己給出了BASTET系統(tǒng)解決方案,具體不展開。
4、相同顏色值在全局是同一份,如果對(duì)其改變獲取后的colorDrawable值,會(huì)導(dǎo)致其它所有使用的地方都改變,可以采用mutable避免。 這個(gè)其實(shí)不能算作坑,是自己代碼沒有看仔細(xì)。
5、華為p8手機(jī),如果service與ui不在同一進(jìn)程,service中監(jiān)控網(wǎng)絡(luò)的BroadcastReciver 會(huì)收不到網(wǎng)絡(luò)連接的廣播,但是能收到斷開的廣播,這個(gè)應(yīng)該也是華為自己的優(yōu)化,但是ui中的連接與斷開都能收到廣播。
6: Android 在4.4后更新了webview內(nèi)核,在5.0前在webview中,不用的域可以讀取其它域設(shè)置的cookie,但是在5.0開始,系統(tǒng)默認(rèn)值改為了false。這樣會(huì)導(dǎo)致之前以前采用舊方法的不能獲取到。(其實(shí)在我看來,確實(shí)不應(yīng)該跨域來讀取cookie,多不安全)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true); }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- Android開發(fā)騰訊驗(yàn)證碼遇到的坑
- Android—基于微信開放平臺(tái)v3SDK開發(fā)(微信支付填坑)
- Android開發(fā)手機(jī)無線調(diào)試的方法
- Android開發(fā)教程之獲取系統(tǒng)輸入法高度的正確姿勢
- Android開發(fā)解決popupWindow重疊報(bào)錯(cuò)問題
- 使用Win10+Android+夜神安卓模擬器,搭建ReactNative開發(fā)環(huán)境
- Android快速開發(fā)系列 10個(gè)常用工具類實(shí)例代碼詳解
- Android開發(fā)筆記之如何正確獲取WebView的網(wǎng)頁Title
- Android開發(fā)圖片水平旋轉(zhuǎn)180度方法
- Android Studio中使用jni進(jìn)行opencv開發(fā)的環(huán)境配置方法
- Android UI開發(fā)中所遇到的各種坑
相關(guān)文章
Android Scroll實(shí)現(xiàn)彈性滑動(dòng)_列表下拉彈性滑動(dòng)的示例代碼
下面小編就為大家分享一篇Android Scroll實(shí)現(xiàn)彈性滑動(dòng)_列表下拉彈性滑動(dòng)的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01Android5.0+ CollapsingToolbarLayout使用詳解
這篇文章主要為大家詳細(xì)介紹了Android5.0+ CollapsingToolbarLayout使用,感興趣的小伙伴們可以參考一下2016-09-09Android編程之匿名內(nèi)部類與回調(diào)函數(shù)用法分析
這篇文章主要介紹了Android編程之匿名內(nèi)部類與回調(diào)函數(shù)用法,結(jié)合實(shí)例形式分析了Android編程中所涉及的java匿名內(nèi)部類與回調(diào)函數(shù)的概念、定義、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-10-10Android實(shí)現(xiàn)錄音方法(仿微信語音、麥克風(fēng)錄音、發(fā)送語音、解決5.0以上BUG)
大家平時(shí)在使用微信qq聊天時(shí)經(jīng)常會(huì)發(fā)送語音功能,今天小編給大家?guī)砹嘶赼ndroid實(shí)現(xiàn)錄音的方法仿微信語音、麥克風(fēng)錄音、發(fā)送語音、解決5.0以上BUG,需要的朋友參考下吧2018-04-04Android?Navigation重建Fragment問題分析及解決
這篇文章主要介紹了Android?Navigation重建Fragment問題分析及解決,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09android簡單自定義View實(shí)現(xiàn)五子棋
這篇文章主要為大家詳細(xì)介紹了android簡單自定義View實(shí)現(xiàn)五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Android framework ATMS啟動(dòng)流程
這篇文章主要為大家介紹了Android framework ATMS啟動(dòng)流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03