標籤:row param cli his map client 返回 ima
上文記錄了一些ThinkAndroid常用的模組,本文繼續介紹ThinkAndroid中的網路化模組。
按照慣例先上Github原文地址:https://github.com/white-cat/ThinkAndroid
一、Http模組使用方法:
- 執行個體化AsyncHttpClient對象
- 調用非同步get方法 傳入(String url ,new AsyncHttpResponseHandler方法)
- 實現onStart()、onSuccess()、onFailure()、onFinish()方法
AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.thinkandroid.cn/", new AsyncHttpResponseHandler() { @Override public void onSuccess(String content) { // TODO Auto-generated method stub super.onSuccess(content); TALogger.d(LoginActivity.this, content); } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); } @Override public void onFailure(Throwable error) { // TODO Auto-generated method stub super.onFailure(error); } @Override public void onFinish() { // TODO Auto-generated method stub super.onFinish(); } });
- 執行個體化TAsyncHttpClient對象
- 調用非同步get方法 傳入(String url ,new AsyncHttpResponseHandler方法)
- 實現onStart()、onSuccess()、onFailure()、onFinish()方法
TASyncHttpClient client = new TASyncHttpClient(); client.get("http://www.thinkandroid.cn/", new AsyncHttpResponseHandler() { @Override public void onSuccess(String content) { // TODO Auto-generated method stub super.onSuccess(content); TALogger.d(LoginActivity.this, content); } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); } @Override public void onFailure(Throwable error) { // TODO Auto-generated method stub super.onFailure(error); } @Override public void onFinish() { // TODO Auto-generated method stub super.onFinish(); } });
- 使用http模組上傳檔案 或者 提交資料 到伺服器(post方法、非同步)類似於前面的Get方法
- 執行個體化AsyncHttpClient對象
- 執行個體化RequestParams對象,並put添加索引值對參數
- 調用非同步post方法 傳入(String url ,new AsyncHttpResponseHandler方法)
- 實現onStart()、onSuccess()、onFailure()、onFinish()方法
RequestParams params = new RequestParams(); params.put("username", "white_cat"); params.put("password", "123456"); params.put("email", "[email protected]"); params.put("profile_picture", new File("/mnt/sdcard/testpic.jpg")); // 上傳檔案 params.put("profile_picture2", inputStream); // 上傳資料流 params.put("profile_picture3", new ByteArrayInputStream(bytes)); // 提交位元組流 client.post("http://www.thinkandroid.cn/", new AsyncHttpResponseHandler() { @Override public void onSuccess(String content) { // TODO Auto-generated method stub super.onSuccess(content); TALogger.d(LoginActivity.this, content); } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); } @Override public void onFailure(Throwable error) { // TODO Auto-generated method stub super.onFailure(error); } @Override public void onFinish() { // TODO Auto-generated method stub super.onFinish(); } }); }
- 同理使用http模組上傳檔案 或者 提交資料 到伺服器(post方法、同步)
- 使用http下載檔案:支援斷點續傳,隨時停止下載任務 或者 開始任務
- 執行個體化AsyncHttpClient對象
- 執行個體化FileHttpResponseHandler對象,並傳入參數檔案的緩衝路徑
- 實現onProgress()、onSuccess()、onFailure())方法
- fileHttpResponseHandler.setInterrupt(false);為停止暫停方法 otherwise 為開啟下載暫停方法
調用syncHttpClient的download(url,fileHttpResponseHandler);方法,傳入url地址及FileHttpResponseHandler對象
ps:一般在onProgress裡執行處理下載進度,速度等操作;
執行個體代碼:
- 執行個體化DownLoadManager對象
- 調用addHandler方法並傳入
- 調用下載回調方法並實現OnLoading()、onAdd 等方法
- 調用pauseHandler暫停下載任務
執行個體代碼如下:
final DownloadManager mDownloadManager = DownloadManager.getDownloadManager();
mDownloadManager.addHandler(url);
二、圖片模組 方法
- imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
載入:
@TAInjectView(id = R.id.listView) ListView lv; Adapter adapter = new Adapter(this, getTAApplication());//傳入TAapplication lv.setAdapter(adapter);
綁定資料:
1、執行個體化TADownloadBitmapHandler對象傳入參數context,圖片寬高
2、執行個體化TABitmapCallBackHanlder對象,設定圖片的載入中圖片通過setLoadingImage方法
3、執行個體化TABitmapCahceWork對象
4、該對象調用setFileCache實現設定緩衝路徑
5、該對象調用步驟2的bitmap回掉方法並傳入tcbh對象
6、該對象調用步驟1的setProcessDataHandler方法傳入TDBH對象
7、TABitmapCacheWork對象調用loadFormCache方法Object對象及imageview 進行圖片緩衝讀取
執行個體代碼如下:
getView方法中進行資料適配:
三、緩衝模組 方法
- 很簡單的實現緩衝,以一個簡單的檔案快取為例
- 下載處理類
調用緩衝處理方法:
四、下載器模組
- 可以簡單的實現多線程下載、後台下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等原理同單線程多任務下載:
private DownloadManager downloadManager;
downloadManager = DownloadManager.getDownloadManager(); downloadManager.setDownLoadCallback(new DownLoadCallback() { @Override public void onSuccess(String url) {
} @Override public void onLoading(String url, String speed, String progress) { // TODO Auto-generated method stub } }); //添加 downloadManager.addHandler(url); //繼續 downloadManager.continueHandler(url); //暫停 downloadManager.pauseHandler(url); //刪除 downloadManager.deleteHandler(url);}
- 後台下載
private IDownloadService downloadService; ServiceConnection serviceConnection=new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub } @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub downloadService=(IDownloadService)service; } }; //新增工作 downloadService.addTask(url) //暫停任務 downloadService.pauseTask(url) //繼續任務 downloadService.continueTask(url) //刪除任務 downloadService.deleteTask(url)
第三方架構之ThinkAndroid 學習總結(二)