- 作者:Mr.Egg
- 狀態:完成
- 轉載請注明
一.第五章
(本章只理解了大概)
1.廣播機制
廣播分為標準廣播與有序廣播
標準廣播直接分發到所有廣播接收器
有序廣播依次分發到各個接收器
二.第六章
1.將數據存入/取出文件
兩種模式MODE_PRIVATE(覆蓋 默認用此)和MODE_APPEND(追加),其余兩種在4.2版被廢棄不做介紹。
注意:讀取權限的申請?這里沒提到,不過可能需要SD卡的讀取權限。
2.SharedPreferences
調用Activity中的getSharedPreferences("name",模式)方法獲取到SharedPreferences.Editor對象
通過設置 key , value 方式存儲鍵值對,最后調用apply方法保存。
同理于取,不做介紹。
3.SQLite
新建類繼承于SQLiteOpenHelper,在onCreate方法中新建表
在onUpgrade方法中更新表,每次更新都會導致數據庫數據清除,通過傳入比之前更大的版本號自動調用onUpgrade方法。
添加數據
調用getWritableDatabase()方法獲取數據庫db
實例化ContentValues插入鍵值對后再調用db直接插入
其他不做介紹
同樣也可以直接使用sql語句操作數據庫
eg.db.execSQL("delete from xx where number > ?",new String[]{"500"});
4.LitePal 數據庫開源操作庫
(重點) 同樣的有GreenDao
首先導入庫,'org.litepal.android.core:1.3.2'
接著在main目錄下新建assets目錄下新建litepal.xml
<litepal>
<dbname value = "name"></dbname>
<version value = "1"></version>
<list>
</list>
<litepal>
接下來配置** AndroidManifest.xml** ,在application標簽下面的 android:name="org.litepal.LitePalApplication"
使用
首先,新建對應表的實體類(類--->表 一個類對應一張表)。
接著在litepal.xml中配置
<litepal>
<dbname value = "name"></dbname>
<version value = "1"></version>
<list>
<mapping class = "com.example.xxx.class"></mapping>
</list>
<litepal>
eg.
創建數據庫 Connector.getDatabase()
插入數據
Class xx = new Class();
....(設置數據)
xx.save();
同理于其他 不予列舉
三.第七章
1.內容提供器
內容提供器是不同應用之間共享數據的渠道
2.Android權限機制
Android權限分為普通權限和危險權限,普通權限由系統之間授權,危險權限需要示意用戶是否給予權限。
四.第八章
本章講調用系統組件(相機,相冊等),未仔細閱讀。
五.第九章
注意本章要申請網絡權限
1.WebView使用方法
2.HTTP協議訪問
HTTP協議訪問網絡屬于底層實現,現在常用封裝好的庫來代替 ,但也必須了解。
首先,網絡屬于耗時操作,只能在子線程中運行
幾個主要的點
Url url = new Url("");
HttpConnection connection = new HttpConnection ();
connection .setRequestMethod("GET/POST");
connection .setConnectionTimeout(8000(ms));
connection .setReadTimeout(8000(ms));
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader( new InputStreamReader(in) );
//處理reader就可以了
3.使用OkHttp
okhttp是Square公司的開源網絡庫,類似的有Retrofit。
主要操作
OkHttpClient client = new OkHttpClient();//請求主體
Request request = new Request.Builder() //request對象
.url("url")
.builder();
Response response = client.newCall(request).execute(); //發送請求
//-------------------------Post提交------------------------------------//
RequestBody requestBody = new FormBody.Builder()
.add("key","value")
.builder();
Request request = new Request.Builder()
.url("url")
.post(requestBody )
.builder();
4.解析XML
三種方式:Pull,SAX,DOM(此書未提及)
5.解析Json
多種方式,書上主要寫JSONObject,GSON還有一種常用的為FastJson
由于我習慣用Gson所以這里我稍微介紹下Gson。
用Gson解析Json首先要先根據Json構造對應的實體類,如果用Android Studio的話可以添加插件GsonFormat根據Json自動生成對應的實體類。
其次是用法
Class JsonClass = new Gson().fromJson(String,Class.class);
如果的List的話較為麻煩 (此處憑記憶打的可能有錯,具體請百度)
List<T> list = new Gson().fromJson(json,new TypeToken< List<T> >() {}.getType() );