Java 在新线程中实现侦听器
我目前正在制作一个android应用程序,并试图在一个新线程上实现一个事件监听器。 这是主要活动的Java 在新线程中实现侦听器,java,android,Java,Android,我目前正在制作一个android应用程序,并试图在一个新线程上实现一个事件监听器。 这是主要活动的onCreate方法的实现: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main ); new Thread(new Runnable() {
onCreate
方法的实现:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main );
new Thread(new Runnable() {
public void run(){
seek_bar() ;
}
}).start();
}
以及seek_bar
方法的实现:
public void seek_bar()
{
seek=(SeekBar)findViewById(R.id.seekBar1) ;
seek.setOnSeekBarChangeListener(
new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//do somework
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//do some work
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//do some work
}
}
) ;
}
它可以工作,但我的问题是可能出现什么错误,这是一种好的做法吗?此代码不会在新线程上运行事件侦听器,您所做的只是设置侦听器。事件将在UI线程上执行。一个更好的问题可能是:“为什么您觉得有必要使用两个线程来执行此操作?”@leoderprofi那么新创建的线程做什么呢?@MikeRobinson我认为这是我的“好吧,如果它能工作…”的解决方案,但是,我不知道它实际上是如何工作的,而且,根据上面@loederprofi的评论#1,我预测事实并非如此。这里的问题是,现在有两个线程,每个线程完全独立地执行,都与相同的用户界面对象交互。这些UI对象是“线程安全的”吗?(当然不是)等等。我建议你“碰撞”你原来的问题,希望它能得到回答。(我自己觉得没有资格回答这个问题。)不过,我的直觉告诉我,你很可能是在骗人。