Java Android:在活动中添加计时器会使其崩溃
我在学习安卓,我遇到了一个小问题。 我有一个按钮,我想在点击它之后移动到屏幕的右侧。 我添加了一个在点击按钮后启动的计时器,但当我点击按钮时,程序/活动崩溃 代码如下:Java Android:在活动中添加计时器会使其崩溃,java,android,timer,Java,Android,Timer,我在学习安卓,我遇到了一个小问题。 我有一个按钮,我想在点击它之后移动到屏幕的右侧。 我添加了一个在点击按钮后启动的计时器,但当我点击按钮时,程序/活动崩溃 代码如下: import android.app.Activity; import android.graphics.Point; import android.os.Bundle; import android.view.Display; import android.view.View; import android.widget.Bu
import android.app.Activity;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.Button;
public class Testing extends Activity{
Timer timer = new Timer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing_layout);
final Button bt = (Button)findViewById(R.id.testButton);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
float btLoc = bt.getX();
bt.setX(btLoc+= 50);
}
}, 2000, 2000);
}
});
}
这段移动按钮的代码以前在没有计时器的情况下工作。我不知道为什么在执行onClick(视图v)
时程序会崩溃
(对不起我的英语)用于从非UI线程更新UI:
@Override
public void onClick(View v) {
timer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
Testing.this.runOnUiThread(new Runnable() {
public void run() {
//update ui here
float btLoc = bt.getX();
bt.setX(btLoc+= 50);
}
});
}
}, 2000, 2000);
}
});
LogCat跟踪会给你一个提示,说明为什么程序会“崩溃”…我是android新手,如何使用LogCat?如果你使用Eclipse,会有一个LogCat窗口,显示设备上所有记录的项目。我刚刚尝试过,但在我运行应用程序并使其崩溃后,LogCat会保持空状态,没有任何消息