作者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)
1F:推 ug945:Activity<->BroadcastReceiver<->Service 06/02 04:00
2F:推 ug945:如果要做比较耗资源的事 可以开另一个线程跑 06/02 04:07
3F:→ KeySabre:在service印log看thread name, 你会发现... 06/02 04:59
4F:推 sdyy:service 照样会ANR 你要用的是asynctask 或handler 06/02 11:28
5F:→ KeySabre:如果事情太长 或者完全与UI无关的话 就不适合用asyncta 06/02 19:10
6F:→ KeySabre:sk 06/02 19:10
7F:→ KeySabre:至於handler 如果没给looper 预设拿到的多是main looper 06/02 19:12
8F:→ KeySabre: 同样还是要看事情与UI的关联... 06/02 19:12
9F:→ qweqweqweqwe:直接new thread 然後跟UI有关的丢回handler? 06/02 22:15