2017-01-19 41 views
0

我使用的是意圖服務中使用FFMPEG庫和壓縮後的壓縮幾個視頻文件,這些文件存儲使用FTP服務器上。於是,我開始了一個線程,等待FFPEG​​方法,直到它成功完成。IllegalStateException異常在IntentService同時使用FFMPEG庫

然後,我使用FTP將這些文件存儲在服務器上。 的工作是做得正確,但最終它返回illegalStateException

的MessageQueue:處理器(android.view.ViewRootImpl $ ViewRootHandler){} 8895619對死線程發送消息到一個處理

如果我有10個文件,這個異常將返回10次。 什麼可能是這種例外的原因,我怎樣才能避免它。

這裏是我使用的處理程序:

  fFmpeg.execute(command, new ExecuteBinaryResponseHandler() { 
      @Override 
      public void onFailure(String s) { 
       System.out.println(idx + "----------Failure: \n" + s.toString()); 
      } 

      @Override 
      public void onSuccess(String s) { 
       System.out.println(idx+ "----------Success: \n" + s.toString()); 
      } 

      @Override 
      public void onProgress(String s) { 
      } 

      @Override 
      public void onStart() { 
       System.out.println(idx+ " started"); 
      } 

      @Override 
      public void onFinish() { 
       totalProcessedFileCount++; 
       System.out.println(idx + "*****************Finished "+ totalProcessedFileCount); 
      } 
     }); 
+0

的問題是有關您所使用的處理器,它描述了有發送到處理器的消息,但該線程在其中處理程序創建已死亡。如果你發佈你正在使用的處理程序和它的用法,我可以提供更多的提示 – petrumo

+0

@petrumo我已經添加了處理程序代碼。 –

回答

0

您可以通過一個單獨的線程運行的處理嘗試。

HandlerThread handlerThread = new HandlerThread(); 
handlerThread.start(); 

和處理程序附加到新的線程

new ExecuteBinaryResponseHandler(mHandlerThread.getLooper()); 
相關問題