先上代码 说明一下问题
public class HandlerTextActivity extends Activity {
//声明按钮变量
Button startButton,endButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取按钮实例
startButton = (Button)findViewById(R.id.startButton);
endButton = (Button)findViewById(R.id.endButton);
//为按钮添加事件监听器
startButton.setOnClickListener(new startButtonClickListener());
endButton.setOnClickListener(new endButtonClickListener());
}
Thread thread =null;
Handler handler = new Handler();
class startButtonClickListener implements OnClickListener
{ @Override
public void onClick(View v)
{
// handler.post(updateThread);
thread = new Thread(updateThread);
thread.start();
}
}
class endButtonClickListener implements OnClickListener
{ @Override
public void onClick(View v)
{
flag = true;
}
}
boolean flag=false;
Runnable updateThread = new Runnable()
{ @Override
public void run()
{
System.out.println("updateThread");
while(true)
{
System.out.println("updateThread");
try
{
Thread.sleep(1000);
if(flag)
{
break;
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
//handler.postDelayed(updateThread, 1000);
}
};
}
用Handler和不用Handler都是每隔一秒输出updateThread 然后单击结束按钮就停止输出 。通过这个程序我只是觉得用Handler代码会少一点 没觉得有什么多大用处啊?用Thread都可以换他了,请大哥大姐指点一下。
public class HandlerTextActivity extends Activity {
//声明按钮变量
Button startButton,endButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取按钮实例
startButton = (Button)findViewById(R.id.startButton);
endButton = (Button)findViewById(R.id.endButton);
//为按钮添加事件监听器
startButton.setOnClickListener(new startButtonClickListener());
endButton.setOnClickListener(new endButtonClickListener());
}
Thread thread =null;
Handler handler = new Handler();
class startButtonClickListener implements OnClickListener
{ @Override
public void onClick(View v)
{
// handler.post(updateThread);
thread = new Thread(updateThread);
thread.start();
}
}
class endButtonClickListener implements OnClickListener
{ @Override
public void onClick(View v)
{
flag = true;
}
}
boolean flag=false;
Runnable updateThread = new Runnable()
{ @Override
public void run()
{
System.out.println("updateThread");
while(true)
{
System.out.println("updateThread");
try
{
Thread.sleep(1000);
if(flag)
{
break;
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
//handler.postDelayed(updateThread, 1000);
}
};
}
用Handler和不用Handler都是每隔一秒输出updateThread 然后单击结束按钮就停止输出 。通过这个程序我只是觉得用Handler代码会少一点 没觉得有什么多大用处啊?用Thread都可以换他了,请大哥大姐指点一下。
解决方案 »
- TAB没办法重写onActivityResult
- 请教一个输入框的问题
- android2.3中在c frameworks层如何获取上层设置的surface的 w 、h和position?
- android wifi如何实现802.1x认证
- 读取AndroidManifest.xml信息
- Android注册
- android 传感器的临近性和磁场是什么意思
- 点击ListPreference控件,会弹出List列表框,如何将这个列表框中的某一项设置为不可用
- 安卓数据库 逐条显示问题。。。。
- 看一下,为什么我的layout_height在listview中不起作用
- 菜鸟求助:ANDROID 环境搭建问题!
- 请问怎么修改android系统里编辑文本的光标方向啊?
是的哈,handler 是归属于你创建handler的那个线程。如果你在UI线程中创建,那它就属于UI线程,如果你在其他线程中创建,就属于其他线程。
简单的说,就是这两个单词的意思
一个是handler,一个是thread.
他们经常搭档,但明显不是一个玩意儿么