hander同步技巧 利用post之後的訊息是最後完成的,實現同步。關鍵看waitDone的實現。帶面精簡Camera應用。
private void testWait(){ HandlerThread ht = new HandlerThread("Camera Handler Thread"); ht.start(); mCameraHandler = new CameraHandler(ht.getLooper()); mCameraHandler.obtainMessage(OPEN_CAMERA, 1, 0).sendToTarget(); boolean ret = false; ret = mCameraHandler.waitDone(); Log.v(TAG, "ret = " + ret); } private class CameraHandler extends Handler { CameraHandler(Looper looper) { super(looper); } /** * Waits for all the {@code Message} and {@code Runnable} currently in the queue * are processed. * * @return {@code false} if the wait was interrupted, {@code true} otherwise. */ public boolean waitDone() { final Object waitDoneLock = new Object(); final Runnable unlockRunnable = new Runnable() { @Override public void run() { synchronized (waitDoneLock) { Log.v(TAG, " notifyAll start"); waitDoneLock.notifyAll(); } } }; synchronized (waitDoneLock) { mCameraHandler.post(unlockRunnable); try { Log.v(TAG, "start wait"); waitDoneLock.wait(); } catch (InterruptedException ex) { Log.v(TAG, "waitDone interrupted"); return false; } } return true; } /** * This method does not deal with the API level check. Everyone should * check first for supported operations before sending message to this handler. */ @Override public void handleMessage(final Message msg) { switch (msg.what) { case OPEN_CAMERA: try { Log.v(TAG, "start sleep 4s"); Thread.sleep(4000); Log.v(TAG, "end sleep 4s"); } catch (InterruptedException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); } default: } } }
相關推薦
hander同步技巧 利用post之後的訊息是最後完成的,實現同步。關鍵看waitDone的實現。帶面精簡Camera應用。
private void testWait(){ HandlerThread ht = new HandlerThread("Camera Handler Thread"); ht.start(); mCameraHandler
接收簡訊訊息介面API,使用ajax跨域無重新整理實現根據手機號碼傳送6位簡訊驗證碼
應用場景:登入驗證,註冊賬號,密碼找回,繫結手機號等功能 1. 本介面採用的是聚合資料介面:https://www.juhe.cn/docs/api/id/54 2. 首先,註冊賬號申請快遞單號介面:獲取申請的key 3. 簡訊模板申請 3.1. 因為等會需
Java 線程第三版 第五章 極簡同步技巧 讀書筆記
prev ear ont java else 停止 第三版 不同的 結合 一、能避免同步嗎? 取得鎖會由於下面原因導致成本非常高: 取得由競爭的鎖須要在虛擬機的層面上執行很多其它的程序代碼。 要取得有競爭鎖的線程總是必須等到鎖被釋放後。 1. 寄
利用QEventLoop實現同步等待信號槽返回結果
有一個 str ID 主程 col 一個 例子 就是 pid 在QT中想要實現一個簡單的函數:給定一個網頁地址(http://www.hao123.com),等待返回網頁的html內容。 當然我想到可利用QNetWork相關的類:QNetworkAccessManager
Vue.js 的一個小技巧---利用v-for中的index值,來實現隔行變色
type 樣式 lin class idt title mes har oct 首先定義好樣式,利用v-for中的index值,然後綁定樣式來實現隔行變色效果。 以下為完整代碼,很簡單,但也是個技巧。 <!DOCTYPE html> &
利用cwRsync客戶端將Windows下文件同步到Linux
txt文件 任務 span gdrive -- 腳本執行 查找 輸入 rsync服務 這裏不描述Linux服務端安裝配置rsync服務的過程,有需要可以在網絡上查找相關教程。 1.安裝cwRsync客戶端下載地址:http://itefix.no/cwrsync/下載文件c
C++多線程同步技巧(一) --- 臨界區
定義 process i++ 線程 del 文件創建 結構 UNC pau 簡介 C++中關於多線程的內容對於構建工程來說是至關重要的,C++本身也對關於多線程的操作提供了很好的支持。本章筆者就來介紹一下C++有關於多線程的重要知識點---臨界區。 臨界區的作用 線程
C++多線程同步技巧(二)--- 事件
create include 解鎖 signed 選擇 參數 bre tdi 人工 簡介 Windows在線程同步方面提供了多種信號處理機制,其中一種便是使用 CreateEvent() 函數創建事件,然後使用信號控制同步。其中將事件變為有信號可使用 SetEvent()
利用ContentProvider實現同步Binder
在Android中跨程序通訊的方式有好多種,比如 Intent Messenger AIDL(Android 介面定義語言) ContentProvider Socket 以AIDL為例,在使用AIDL實現安卓跨程序通訊的時候,通常分為3步:
前端利用Post方式與後臺互動匯出Excel
最近做了一個功能,將頁面查詢的表格資料匯出到excel表格中,利用NOPI的方法做匯出功能。 1.下載NOPI.dll並引用到專案中。 2.前端頁面的匯出方法: //匯出 function btnExport() { var colArr = []; //
小技巧:去掉每一行最後一個li的外邊框/是否准許使用者調整文字域的大小
去掉每一行最後一個li的外邊框 1.給每個li起類名單獨去掉;(不建議使用) 2.將ul稍微多設定一點寬度,在ul的父容器中設定正常寬度、高度,並寫overflow:hidden; 3.ul無父元素時可給li寫margin-left:-value;在ul中寫overflow:hidden
ActiveMQ利用ajax收發訊息
準備工作: 後臺需要導包: activemq-all.jar activemq-web.jar jetty-all.jar 如果是maven專案: pom.xml <dependency> &nb
AJAX中的利用POST傳送資料
這裡我只寫關鍵語句,其它的就和GET方法一樣的,如果不請楚,請看我前面的文章:Ajax的JSP示例以及相關知識介紹,適合於入門者 function doMyPost() { //這裡一定要加兩次編碼,具體原因請看:AJAX中利用PO
C++多執行緒同步技巧(二) ---事件
簡介 Windows線上程控制方面提供了多種訊號處理機制,其中一種便是使用 CreateEvent() 函式建立事件,然後使用訊號控制執行緒執行。其中將事件變為有訊號可使用 SetEvent() 函式,將事件訊號復位(變為無訊號)可使用 ResetEvent(
利用Robot製作訊息轟炸機
前段時間跟朋友用QQ聊天,說著說著就鬥起了嘴,我朋友瘋狂給我發 “你是傻子”,於是我也瘋狂的回覆 “你才是大傻子”,大家可以想象我是多麼辛苦的按鍵盤組合鍵【Control+C】,【Control+V】,【Enter】。 頓時覺得自己怎麼那麼傻,身為程式設計師,我幹嘛不做一個
OKHttp get同步請求網路+post非同步請求網路+上傳圖片
導依賴 implementation 'com.squareup.okhttp3:okhttp:3.11.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' public
【stark_summer的專欄 】專注於開發分散式任務排程框架、分散式同步RPC、非同步MQ訊息佇列、分散式日誌檢索框架、hadoop、spark、scala等技術 如果我的寫的文章能對您有幫助,請您能給點捐助,請看首頁置頂
專注於開發分散式任務排程框架、分散式同步RPC、非同步MQ訊息佇列、分散式日誌檢索框架、hadoop、spark、scala等技術 如果我的寫的文章能對您有幫助,請您能給點捐助,請看首頁置頂...
HTML中表單利用 post 提交與利用 get 提交時的區別
先利用HTML的<form>表單寫一個簡單的註冊頁面 HTML程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
SpringBoot利用redis整合訊息佇列
import java.util.concurrent.CountDownLatch; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactor
利用七牛雲解決PC端檔案同步
經常有一些文件需要在公司和家裡的兩地電腦間手工同步,很麻煩,於是利用七牛雲免費的空間來做服務端實現同步功能。 同時,為了文件內容保密,我採用cryptography模組(通過指定一個複雜的字串)對檔案加密,這樣即使別人獲取了七牛雲上的檔案也無法破解。 imp