本人通过在UI线程中调用子线程实现动态显示信息,已经实现,可以不知道如何实现暂停啊。请多多指教。
关键代码如下:
public class HandlerTest extends Activity {
protected static final int GUIUPDATEIDENTIFIER = 0x101;
int i=0;
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case HandlerTest.GUIUPDATEIDENTIFIER:
setContentView(R.layout.main);
TextView tv=(TextView) findViewById(R.id.tv);
tv.setText("G3:"+i);
tv.postInvalidate(); //使用postInvalidate();刷新
break;
}
super.handleMessage(msg);
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
new Thread(new myThread()).start();
Button button1 = (Button)findViewById(R.id.stop);
button1.setOnClickListener(startIt);
}
private OnClickListener startIt = new OnClickListener()
{
public void onClick(View v)
{
[color=#FF0000]// 想在这里添加代码,控制子线程暂停 [/color]
} };
class myThread implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message message = new Message();
message.what = HandlerTest.GUIUPDATEIDENTIFIER;
HandlerTest.this.myHandler.sendMessage(message);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
}
关键代码如下:
public class HandlerTest extends Activity {
protected static final int GUIUPDATEIDENTIFIER = 0x101;
int i=0;
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case HandlerTest.GUIUPDATEIDENTIFIER:
setContentView(R.layout.main);
TextView tv=(TextView) findViewById(R.id.tv);
tv.setText("G3:"+i);
tv.postInvalidate(); //使用postInvalidate();刷新
break;
}
super.handleMessage(msg);
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
new Thread(new myThread()).start();
Button button1 = (Button)findViewById(R.id.stop);
button1.setOnClickListener(startIt);
}
private OnClickListener startIt = new OnClickListener()
{
public void onClick(View v)
{
[color=#FF0000]// 想在这里添加代码,控制子线程暂停 [/color]
} };
class myThread implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message message = new Message();
message.what = HandlerTest.GUIUPDATEIDENTIFIER;
HandlerTest.this.myHandler.sendMessage(message);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
}
解决方案 »
- 一个头疼了一周的问题,webview 监听最后一次页面加载结束
- Activity中的onPause(),onStart(),onDestory()方法主要是做什么用的?
- 向sqlite插入图片二进制插不进去
- 请教:乐Phone手机如何把自己的程序切入后台
- 【求助OPhone开发】web not available问题
- 隐藏键盘
- 相机拍照问题,我快疯了。。。
- android 访问数据库(远程) 用什么方式或者插件
- android 项目打包报错!大神可以帮我看看怎么解决
- 地区级别模块数据库怎么设置进入界面,好看的滑动效果怎么加上?
- android以后做那个方面会好混点,有前途点呀?
- webkit怎么能够解析出wml页面?
待要唤醒时notify或者notifyAll。
要保持好同步。
或者干脆让线程结束,下次再重新new一个线程。
在JAVA中,一个线程一旦运行完毕,即执行完其run()方法,就不可以重新启动了。此时这个线程对象也便成了无用对象,等待垃圾回收器的回收。下次想再启动这个线程时,必须重新new出一个线程对象再start之
http://eyesye.javaeye.com/blog/234090
是的,我看成结束线程了,java的线程控制比较烂,对sun的破玩意恨之入骨