安卓權威指南第三版第16章拍照閃退問題
安卓權威指南第三版第16章拍照閃退問題
作為安卓小白,對著工具書去敲程式碼是件痛苦並快樂的事。痛苦,出了問題都得用自己空白的大腦去找bug,啥原理不知道,看著大神們在部落格裡面寫的天書找關鍵找能懂的部分去理解,花的時間和精力很讓我痛苦;快樂,在找出原因並解決的時候是最快樂的。
在這次16章隱式intent的時候出現了拍照閃退的這個問題。找了兩天才找出原因,下面是我的痛苦史:
一開始我以為是我的建立資料夾失敗,於是把程式碼拆開寫以便於除錯。
public File getPhotoFile(Crime crime) {
File filesDir = mContext.getFilesDir();
File files = new File(filesDir, crime.getPhotoFilename());
//files.getParentFile().mkdir();
return files;
}
除錯了半天,不對應該是瞎搞了半天,發現自己的手機沒root,或者是因為其他原因,這個資料夾在手機中是找不到的。(請教大神怎麼才可以找到)
於是繼續百度,關鍵詞:為啥拍照返回時會閃退;結果:有的手機廠家設定了,在呼叫其它activity時,會將上一個關閉,想解決就需要將資料儲存在Bundle中。按照上面的做法還是不行。這個時候我已經很煩了,因為知道用隱式intent開啟相機並儲存圖片本地不是一件複雜的事,而我在這裡浪費了很長時間。
檢查完寫入和讀取沒問題後,想到了書中寫到關閉相機許可權的問題(書還是很嚴謹的= =),**是不是在拍照完成點選確認返回了activity,在onActivityResult()關閉了相機許可權導致應用在還沒讀取到相片就沒有許可權了?**於是
else if (requestCode == REQUEST_PHOTO) {
Uri uri = FileProvider.getUriForFile(getActivity(),
“com.bignerdranch.android.criminalintent.fileprovider”,
mPhotoFile);
//更新試圖
updatePhotoView();
//關閉許可權
getActivity().revokeUriPermission(uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
我將更新試圖和關閉許可權調換了一下執行順序,神奇的是,沒有閃退了,成功了!
但是想了一下,這個地方是關閉寫入的許可權,應該不會有影響的呀,沒想通。
今天之所以會寫這篇文件,想要提醒一下和我一樣剛開始學習的小白,書上的內容不一定是全對的,當出現錯誤的時候,要有去質疑的勇氣,雖然我現在也不知調換這兩個方法位置就成功的原因,但是我想到了這一塊可能有問題,沒有去死板的學習就聽好了。當然無傷大雅,學習之路還得繼續。
安卓權威指南第三版原文
希望各位大神看到這篇文章可以指導一下。新人上路,滴滴。
相關文章
- 抓取安卓閃退日誌教程安卓
- 如何解決app閃退問題APP
- pyinstaller閃退問題解決方法
- MAUI模板專案閃退問題UI
- Hadoop權威指南 第4章 關於YARNHadoopYarn
- 安卓應用安全指南六、困難問題安卓
- 安卓呼叫攝像頭拍照安卓
- win10 mysql閃退怎麼解決_解決win10 mysql閃退問題Win10MySql
- pyinstaller 生成 exe 的閃退問題解決方案
- selenium_未報錯但是閃退的問題
- JavaScript 日期權威指南JavaScript
- [已解決]Mac下Anaconda-Navigator閃退問題Mac
- SwipeRefreshView重複下拉重新整理操作閃退問題View
- [譯] JAVASCRIPT 日期權威指南JavaScript
- Java 13權威指南 - CodeFXJava
- JavaScript權威指南(6)——物件JavaScript物件
- 電子書下載:MySQL5權威指南(第3版)MySql
- Swift程式設計權威指南第2版 讀後收穫Swift程式設計
- HTTP權威指南學習-第12章 基本認證機制HTTP
- React-Native 關於oppo手機閃退的問題React
- Mongodb32位的安裝下載,及Mongodb32位的閃退問題MongoDB
- 資料倉儲工具箱-維度建模權威指南(第三版)讀書筆記筆記
- 解決AE 2021 在mac big sur系統上安裝閃退打不開問題Mac
- 如何解決xp遠端桌面連線閃退的問題
- Elasticsearch 權威指南(中文版)Elasticsearch
- javascript權威指南——函式篇JavaScript函式
- HBase權威指南【中文版】
- JavaScript權威指南(8)——函式JavaScript函式
- JavaScript權威指南(7)——陣列JavaScript陣列
- 微服務入門權威指南微服務
- Keil閃退
- 使命召喚11win10閃退怎麼辦_win10使命召喚11閃退問題如何解決Win10
- win10 mastercam安裝時閃退如何解決_win10 mastercam安裝時閃退怎麼辦Win10AST
- 《Excelize 權威指南》新書釋出Excelize新書
- 安卓 Surfaceview 的截圖的問題安卓View
- 《Android程式設計權威指南 第3版》PDF版電子書下載Android程式設計
- 【Camera專題】-Camera幀率、黃光環境下拍照閃紅問題-【展訊平臺】
- JavaScript權威指南(9)——類和模組JavaScript