看板 AndroidDev 關於我們 聯絡資訊
大家好,這次來問的問題是,是否有需要使用service,因為我看了書,範例是說 會不斷在背景執行,那這樣是否就不會影響到UI? 我的問題開始 首先我是要將數值傳給另一個class 讓它做續寫txt檔的動作,但是 可能是因為傳給另一個class的速度太快(1秒100筆)? 或可能是為了要改變UI的關係所以導致,我無法將程式關閉,因為連menu按了 都沒有反應,請問該如何解決? 程式碼我先列出(此片段會1秒執行100次) handleBuf[0]=dataBuf[1]*256+dataBuf[2]; handleBuf[1]=dataBuf[3]*256+dataBuf[4]; handleBuf[2]=dataBuf[5]; handleBuf[3]=dataBuf[6]; handleBuf[4]=dataBuf[7]*256+dataBuf[8]; String saveStr = dataBuf[0]+","+dataBuf[1]+","+dataBuf[2]+","+dataBuf[3]+"," +dataBuf[4]+","+dataBuf[5]+","+dataBuf[6]+","+dataBuf[7]+"," +dataBuf[8]+","+dataBuf[9]+"\n"; tvOutPutOne.setText(Integer.toString(handleBuf[2])); tvOutPutTwo.setText(Integer.toString(handleBuf[3])); Intent intent=new Intent(); intent.setClass(MainActivity.this,file.class); Bundle bundle=new Bundle(); bundle.putString("str",saveStr); intent.putExtras(bundle); startActivity(intent); 如果要解決無法將程式關閉,是否需要使用service幫我做存取動作就好 但是問題來了,因為我用startActivity(intent); 可以一直塞值進去intent 但是,該如何不斷給值,且service做處理? 因為我知道的方法是 Intent i = new Intent(Main.this,Service.class); startService(i); 但這我感覺,好像只能啟動service一次,沒辦法一直丟值? 整理一下問題 1. 上段程式碼,是否會因為不斷執行改變UI而造成無法點選MENU而,也無法關閉程式? 是否有解決方法? 2.若使用Service來幫我做存取動作,該如何從Main程式不斷丟值給Service? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.241.209.170 ※ 編輯: fake01 來自: 123.241.209.170 (06/02 02:41)
ug945:Activity<->BroadcastReceiver<->Service 06/02 04:00
ug945:如果要做比較耗資源的事 可以開另一個線程跑 06/02 04:07
KeySabre:在service印log看thread name, 你會發現... 06/02 04:59
sdyy:service 照樣會ANR 你要用的是asynctask 或handler 06/02 11:28
KeySabre:如果事情太長 或者完全與UI無關的話 就不適合用asyncta 06/02 19:10
KeySabre:sk 06/02 19:10
KeySabre:至於handler 如果沒給looper 預設拿到的多是main looper 06/02 19:12
KeySabre: 同樣還是要看事情與UI的關聯... 06/02 19:12
qweqweqweqwe:直接new thread 然後跟UI有關的丟回handler? 06/02 22:15