安卓多线程——AsyncTask
生活随笔
收集整理的這篇文章主要介紹了
安卓多线程——AsyncTask
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????????? 在采集視頻的同時需要對視頻進行實時處理,因此要使用到多線程。
?????? AsyncTask是android提供的一個處理異步任務的框架,相當于Handler+Thread。相比而言,AsyncTask的優點是封裝良好,代碼簡潔。
使用AsyncTask可以使你在后臺執行耗時任務(doInBackground)并將結果反饋給UI線程(onPostExecute),方便UI線程更新界面,而不會阻塞UI線程。???????? 參考鏈接:http://www.netfoucs.com/article/RowandJJ/69121.html
使用的代碼:
//2. 開啟一個線程進行實施處理幀/*自定義的IndentifyTask類,開啟一個線程分析數據*/private class IndentifyTask extends AsyncTask<Void, Void, Void>{private byte[] mData;//構造函數IndentifyTask(byte[] data){this.mData = data;}@Overrideprotected Void doInBackground(Void... params) {// TODO Auto-generated method stub//Size size = myCamera.getParameters().getPreviewSize(); //獲取預覽大小final int w = myCamera.getParameters().getPreviewSize().width; //寬度final int h = myCamera.getParameters().getPreviewSize().height;final YuvImage image = new YuvImage(mData, ImageFormat.NV21, w, h, null);ByteArrayOutputStream os = new ByteArrayOutputStream(mData.length);if(!image.compressToJpeg(new Rect(0, 0, w, h), 100, os)){return null;}byte[] tmp = os.toByteArray();Bitmap bmp = BitmapFactory.decodeByteArray(tmp, 0,tmp.length); //doSomethingNeeded(bmp); //自己定義的實時分析預覽幀視頻的算法processBmp( bmp );//自己定義的實時分析預覽幀視頻的算法return null;} } //1.建立一個全局變量 IndentifyTask m_IndentifyTask ;//3.在處理幀函數里面添加處理邏輯
總結
以上是生活随笔為你收集整理的安卓多线程——AsyncTask的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈CMDB
- 下一篇: 宝可梦剑盾豪力怎么进化怪力 盘点十大人气