作者fake01 (code)
看板AndroidDev
標題[問題] android Service ?
時間Sun Jun 2 02:39:29 2013
大家好,這次來問的問題是,是否有需要使用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