安卓權威指南第三版第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);
}
我將更新試圖和關閉許可權調換了一下執行順序,神奇的是,沒有閃退了,成功了!
但是想了一下,這個地方是關閉寫入的許可權,應該不會有影響的呀,沒想通。
今天之所以會寫這篇文件,想要提醒一下和我一樣剛開始學習的小白,書上的內容不一定是全對的,當出現錯誤的時候,要有去質疑的勇氣,雖然我現在也不知調換這兩個方法位置就成功的原因,但是我想到了這一塊可能有問題,沒有去死板的學習就聽好了。當然無傷大雅,學習之路還得繼續。
安卓權威指南第三版原文
希望各位大神看到這篇文章可以指導一下。新人上路,滴滴。
相關文章
- Android程式設計權威指南(第二版)學習筆記(十六)—— 第16章 使用 intent 拍照Android程式設計筆記Intent
- Hadoop權威指南 第4章 關於YARNHadoopYarn
- HTTP權威指南學習-第12章 基本認證機制HTTP
- Android程式設計權威指南 - 第10章 使用fragment argumentAndroid程式設計Fragment
- Android程式設計權威指南(第2版)—第14章挑戰練習Android程式設計
- Android程式設計權威指南(第2版)—第15章挑戰練習Android程式設計
- Android程式設計權威指南(第2版)—第12章挑戰練習Android程式設計
- 小記《SQL權威指南(第4版)》SQL
- 抓取安卓閃退日誌教程安卓
- 如何解決app閃退問題APP
- MAUI模板專案閃退問題UI
- 安卓手機閃退怎麼辦安卓
- 《HTML5與CSS3權威指南(第3版·下冊)》——第19章選 擇 器HTMLCSSS3
- HTTP權威指南學習--第8章 整合點:閘道器、隧道及中繼HTTP中繼
- HTML5權威指南讀書筆記25(完結)(第37章)--使用拖放HTML筆記
- pyinstaller閃退問題解決方法
- 《HTML5與CSS3權威指南(第3版·下冊)》——第18章CSS3概述HTMLCSSS3
- Git權威指南Git
- HTTP權威指南HTTP
- Android程式設計權威指南(第二版)— 第10章挑戰練習Android程式設計
- 《HTML5與CSS3權威指南(第3版·上冊)》——第1章Web時代的變遷HTMLCSSS3Web
- 記錄recyclerview的閃退問題解決View
- 關於Angular權威指南 ng-book 2 問題 求指教Angular
- 《HTTP權威指南》合著者Anshu Aggarwal訪談問題徵集HTTP
- Android程式設計權威指南(第二版)— 第13章挑戰練習-13.6Android程式設計
- Android程式設計權威指南(第二版)— 第13章挑戰練習-13.8Android程式設計
- 《HTML5與CSS3權威指南(第3版·上冊)》——第3章HTML5的結構HTMLCSSS3
- JavaScript 日期權威指南JavaScript
- Netty權威指南Netty
- 《ZeroC Ice權威指南》
- 讀《Cassandra權威指南》
- win10 mysql閃退怎麼解決_解決win10 mysql閃退問題Win10MySql
- Sdk Manager.exe 閃退問題的解決
- 解決Xamarin Android SDK Manager閃退問題Android
- 《IDA Pro權威指南(第2版)》編輯手記
- JavaScript權威指南(6)——物件JavaScript物件
- [譯] JAVASCRIPT 日期權威指南JavaScript
- JavaScript權威指南-陣列JavaScript陣列