[問題] 程式流程的問題

看板AndroidDev作者 (三重劉德華)時間12年前 (2013/07/26 10:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
是這樣的 我有到底層呼叫C來使用 也就是我有使用ffmpeg 目的是用來作影片的切割 ffmpeg是使用intentservice的方式 另外給了service process name ------------------------------------------------------------------------------ (原因在於ffmpeg在每次使用時都要對參數初始化 c目前還不會改 只好從process方面下手 每做完一次ffmpeg 就刪除process 再次使用時 就會重新初始化) ------------------------------------------------------------------------------ 大致上理想的流程如下 在main thread 下建立一個thread >> thread的工作是執行ffmpeg >> 執行完ffmpeg後 刪除process(for service) >> 重複上述第二、三個步驟直到切割結束 我遇到的問題如下 Thread threadB = new Thread(new Runnable() { public void run() { System.out.println("ffmpeg 開始.."); test(); //負責執行ffmpeg System.out.println("ffmpeg 即將結束.."); System.out.println("aaaaa"+a); } }); threadB.start(); 如果我在thread外面加一層loop, 就會無法按照我前面的流程走. 他會直接在main thread下把loop內跑完, 才會開始逐一的執行ffmpeg. 這樣子ffmpeg的pid都會是一樣,這會導致在做第二塊時無法初始化. ----------------------------------------------------------------------------- 我有在service的程式碼後面有加上onDestroy() 讓他做刪除pid的動作 當用loop跑的時候 onDestroy()這塊沒有被執行 不知原因如何 ----------------------------------------------------------------------------- 目前有試過join 讓main thread等待 跟AsyncTask 讓ffmpeg在doInBackground執行 但這些都會遇到前面同樣的問題 我想問的是 有什麼方法 可以不斷地重複地執行相同的service? ※在執行ffmpeg時 切割需要數秒的時間 所以必須等待做完後 才能呼叫下一個service -- 作者 strike519 (噓我者 宅友也) 看板 Gossiping 標題 Re: [問卦] 有沒有濕耳屎的八卦? 我就是溼的耳朵兒 醫生說不用清 耳朵有自我機制會清除髒污 結果去游泳就塞住了 再去給醫生挖 就變成順風耳 可以遠遠聽到正妹的心跳聲 超爽~

06/19 14:50,
你現在跟在林默娘身邊嗎?
06/19 14:50
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.238.89 自己又解決了...沒想到是用簡單的BROADCAST就行了...冏rz 我是設計成 當ffmpeg執行完 就send一個廣播出去(寫在ondesdroy) 負責接收廣播的activity就會去重複的呼叫ffmpeg 形成一個loop 如下 activity(接收廣播)<------------->ffmpeg(做完送廣播) loooooooooop 而且activity會記錄該執行幾次ffmpeg 超過之後就不會再去呼叫ffmpeg ※ 編輯: aiweisen 來自: 140.138.150.27 (07/29 16:10)
文章代碼(AID): #1HyU5DRc (AndroidDev)