2016-06-10 23 views
0

我想寫科爾多瓦插件,與PDA RFID閱讀器通信,這將運行一個while循環,並返回到javascript,掛起的問題的Callbackcontext。科爾多瓦callbackContext裏面的一個循環

public boolean execute(final String action, final JSONArray args, final CallbackContext callbackContext) 
     throws JSONException { 
    if (action.equals("READALL")) { 
     cordova.getThreadPool().execute(new Runnable() { 
      public void run() { 

       cmdCode = Constants.CMD_ISO18000_6C_INVENTORY; 
       while (runFlag) { 
        epcBytesList = cmdManager.inventoryRealTime(); 
        for (int i = 0; i < epcBytesList.size(); i++) { 
         byte[] epcByte = epcBytesList.get(i); 
         recvEPC = Tools.Bytes2HexString(epcByte, epcByte.length); 
         // echo(recvEPC, callbackContext); 
         PluginResult result = new PluginResult(PluginResult.Status.OK, recvEPC); 
         result.setKeepCallback(true); 
         callbackContext.sendPluginResult(result); 

        } 
        try { 
         Thread.sleep(10); 
        } catch (InterruptedException e) { 
         // TODO Auto-generated catch block 
         /// callbackContext.error("Failed to parse 
         /// parameters"); 
        } 
       } 
      } 
     }); 

     return true; 
    } 
    return false; 
} 

回答

0

的解決方案是使用插件結果將返回,如果沒有掛

PluginResult result = new PluginResult(PluginResult.Status.OK, recvEPC); 
        result.setKeepCallback(true); 
        callbackContext.sendPluginResult(result); 
callbackcontext