愛學習,愛生活,我是萬子。繼續從1000行開始研究
可以獲取到 SDCard/Android/data/你的應用的包名/files/ 目錄,一般放一些長時間保存的數據
獲取路徑:/storage/emulated/0/Android/obb/應用包名
該目錄是應用的數據存放目錄,一般被用來存放遊戲數據包obb文件。默認存在,可讀寫(6.0系統可以不用向用戶申請)
獲取路徑:/data/user/0/應用包名/cache
該目錄是應用的文件緩存目錄,應用被卸載時,該目錄一同被系統刪除。默認存在,默認具備讀寫權限。不同於getFileDir,該目錄下的文件在系統內存緊張時,會被清空文件,來騰出空間供系統使用,著名的圖片加載庫ImageLoader就是在沒有外置存儲讀寫權限時使用此文件夾。getFileDir,不會因爲系統內存不足而被清空。(6.0系統可以不用向用戶申請)
https://yq.aliyun.com/articles/59477
獲取路徑:/data/user/0/應用包名/code_cache
默認存在,可讀寫。(6.0系統可以不用向用戶申請)
獲取路徑:(以下載目錄爲準) /storage/emulated/0/Android/data/應用包名/files/Download
默認存在,可讀寫。(6.0系統可以不用向用戶申請)
系統的api
返回預加載緩存中特定於應用程序的目錄的絕對路徑。<p>當設備在存儲空間上運行時,可以刪除緩存目錄中存儲的文件。無法保證這些文件何時會被刪除。
獲取路徑:/storage/emulated/0/Android/data/應用包名/cache
默認存在,可讀寫。(6.0系統可以不用向用戶申請)
返回所有共享/外部存儲設備上特定於應用程序的目錄的絕對路徑,應用程序可以在其中放置媒體文件。這些文件被掃描並通過以下方式提供給其他應用程序
檢索,如果需要,創建一個新目錄,應用程序*可以在其中放置自己的自定義數據文件。可以使用返回的File*對象創建和訪問此目錄中的文件。注意,通過File對象創建的文件*只能由您自己的*應用程序訪問;您只能設置整個目錄的模式,而不能設置單個文件的*模式。
打開與上下文的*應用程序包關聯的新的私有SQLiteDatabase。如果數據庫文件不存在,則創建它。
打開與上下文的*應用程序包關聯的新的私有SQLiteDatabase。如果不存在,則創建數據庫文件。
將現有數據庫文件從給定源存儲上下文移到*此上下文。這通常用於在升級之後在存儲*位置之間遷移數據,例如遷移到設備保護*存儲。
刪除與此上下文的*應用程序包關聯的現有私有SQLiteDatabase。
返回文件系統上的絕對路徑,其中存儲有*{@link#openOrCreateDatabase}創建的數據庫
返回命名與*this Context的應用程序包相關聯的私有數據庫的字符串數組。
獲取牆紙路徑 WallpaperManager代替
設置牆紙但是需要權限
清理android的桌面
我靠爲啥context中會有startActivity
原來startActivity不僅僅實在Activity,原來context已經實現了,所以只要有上下文就可以跳轉到任何的Activity
將結果返回給調用者的{@link#startActivity(Intent,Bundle)}版本。這個*只支持View和Fragments
向所有感興趣的廣播接收機廣播給定的意圖。這個調用是異步的;它立即返回,在接收器運行時,您將繼續*執行。沒有從接收器傳播結果,並且接收器不能中止廣播。如果希望*允許接收者傳播結果或中止廣播,則必須*使用以下命令發送廣播
向所有感興趣的BroadcastReceiver廣播給定的意圖,一次一個*地傳送它們,以允許更多的優選接收器在將*廣播傳送給不太優選的接收器之前使用*廣播。這個*調用是異步的;它立即返回,在接收器運行時,您將繼續*執行。
Register a BroadcastReceiver to be run in the main activity thread. The
* <var>receiver</var> will be called with any broadcast Intent that
* matches <var>filter</var>, in the main application thread.
註冊要在主活動線程中運行的BroadcastReceiver,在主應用程序線程中。
取消註冊之前註冊的廣播接收器。已爲此廣播接收器註冊的所有過濾器將被刪除。
請求啓動給定的應用程序服務。Intent*應該包含要啓動的特定服務*實現的完整類名,或者包含要作爲目標的特定包名。如果*Intent的指定較少,它將記錄關於這個的警告。在這種情況下,可以使用任何*多個匹配服務。如果這個服務*還沒有運行,它將被實例化並啓動(如果需要的話,爲它創建一個*進程);如果它正在運行,那麼它仍然在運行。
與{@link#startService(Intent)}類似,但是隱式承諾一旦開始運行,服務將調用{@link android.app.Service#startFore.(int,android.app.Not.)*startFore.(int,android.app.Not.)}。該服務被給予*與ANR時間間隔相當的時間量,否則系統*將自動停止服務並聲明應用程序ANR。
前臺服務
停止服務
連接到應用程序服務,如果需要,創建它。這定義了應用程序和服務之間的依賴關係。給定*<var>conn</var>在創建服務對象時將接收該服務對象,如果該服務對象死亡並重新啓動,則被*告知。只要調用上下文存在,系統就會認爲服務是必需的。例如,如果此上下文是停止的活動,則服務*不需要繼續運行,直到活動恢復爲止。
從應用程序服務斷開連接。當服務重新啓動時,您將不再接收調用,並且現在允許服務在任何時間停止。
按名稱將句柄返回到系統級服務
判斷權限
判斷上下文是否受限制
指示此上下文的存儲API是否由*設備保護存儲支持。
指示此上下文的存儲API是否由*憑證保護的存儲支持。
如果上下文可以加載不安全的資源(例如字體),則返回true。
總結:通過這些方法可以看出Context作出了很多Activity,BroadcastReceiver,service以及文件本地緩存存儲的實現接下來研究研究Activity都封裝了一些什麼方法。