在context api中,有幾組函式,如getexternalcachedir(),getdir(),getcachedir()等,返回的都是乙個file物件。這些函式在軟體的快取管理中,十分有用。現對照著api對這些函式的使用場景和區別作下總結。
context.getdatabasepath(string name) : context.openorcreatedatabase會建立乙個資料庫。而getdatabasepath就是返回檔案系統上此資料庫的絕對路徑。引數name為資料庫的名字;
好吧,看這5個函式略暈。莫暈,api給了很詳細的解釋。
先看下getdir(string name,int mode)的用法吧。
獲取乙個檔案的路徑(如果不存在就建立),應用程式可以在這個路徑裡放置一些資料檔案。通過這個函式返回的file物件,我們可以建立或者讀取這個路徑裡的檔案。但是只有我們自己的應用程式可以訪問這些檔案。嘿,看來我們可以在這個函式返回的檔案路徑裡放點自己的「私房錢」。還有,我們可以通過引數mode來設定檔案的讀取許可權。再加一句,返回的這個檔案,可以是通過
context.openfileoutput(string name,int mode)建立的。
再來看context另外兩個函式,getcachedir()和getexternalcachedir().這倆哥們,雖說getexternalcachedir比getcachedir就多了個external,這待遇就差很多了。
既然是兄弟,就有很多共同點。首先,我們的應用都可以往這兩個函式返回的路徑裡放入快取檔案,而且這些檔案大小還有限制!比如說1mb,要是快取檔案超過1mb了,那不行,得把多餘的資料刪掉,這些刪除操作不能依賴系統噢,得自己搞。當軟體被刪掉的時候,這些快取檔案也得被刪掉。系統記憶體不足的時候,這些快取檔案也會最先被刪除。
不同點,那getexternalcachedir()就得有一把淚啊。首先,由於系統不經常監督sd卡的可用大小為多少,放在sd卡的這些快取檔案就可能沒有刪除。還有當sd拔出,或者手機連著電腦,sd裝載的時候,就不能再讀寫這些檔案了。所以使用之前,得問問sd的狀態。所以別說自己待遇差,自己不靠譜先!還有就是寫在sd卡的快取檔案,是沒有安全措施儲存的。。別的應用也可以看的。。
所以說getcachedir()這個函式是寫在系統內部的,有防盜門守護著。快取檔案可以安心的放,但是注意,別放太多,超過限制要把多餘得捨棄掉。而getexternalcachedir是將檔案放在儲存卡里得,門戶大開,別的應用可以讀寫。不過一般的快取檔案,跟使用者資訊無關的麼,還好。
再說說最後兩個函式:getfilesdir()和getexternalfilesdir().
getfilesdir()是跟openfileoutput()配對使用的。對,就是專門返回使用openfileoutput()建立的檔案。這個跟getdir()有些類似,不過getdir()出了會幹這個,還會幫你建立檔案呢。
getexternalfilesdir()跟getexternalcachedir()這個哥差不多。都很開放,什麼你的我的,那是大家的,不同的應用也可以讀寫這些檔案。然後sd解除安裝了,快取檔案也就都沒了。還有一樣很刁,哪怕是放在這個路徑裡,系統的庫也是看不到這個的。哭,你要是想把放到**庫里,還得執行個插入**庫操作。。看個**段吧。
voidcreateexternalstorageprivatepicture(),
null
,new
mediascannerconnection
.onscancompletedlistener
()});
}catch
(ioexceptione)
}void
deleteexternalstorageprivatepicture()}
boolean
ha***ternalstorageprivatepicture
()return
false
;}
關於程式關於世界
首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...
關於血液關於軟體
1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...
關於冷漠,關於愛情
我不知道為什麼今天又莫名其妙開始思考愛情這件事,隨之就解決了我一直無法面對冷漠這件事 被冷漠是我始終無法消化的一件事,每當遇見冷漠時,我總會覺得就像一團火把自己燒得面目全非,但對方卻毫無傷害。但我突然懂了,遇到冷漠時,體面的離開即可 在乎你的人一定會在你離開後,找到你跟你解釋為什麼 連解釋都來不及,...