作为Android编程的初学者,我并不真正掌握线程的使用和 Handler()功能。点击一个按钮后,我想先调用第一个方法 startProjection(),然后再等几秒钟再调用第二个方法 stopProjection ()。
通过阅读有关该问题的一些主题,我构建了这段代码,能够执行第一次调用而不是第二次调用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// some code
// start projection
Button startButton = (Button) findViewById(R.id.startButton);
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startProjection();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
stopProjection();
}
}, 7000);
}
});
Build Gradle正常工作但是当我最终点击Button时没有任何反应。似乎处理程序无法正常工作。无论如何在同一个 onClick()方法中执行这些操作?
编辑:以前这两种方法分别叫做使用两个按钮购买(它可以工作!),但我真的想用一个按钮。答案 0 :(得分:0)
我只想检查你是否有任何特定的理由在一个单独的线程中使用stopProjection()函数。可能以下可能正常工作:
startProjection();
Thread.sleep(7000);
stopProjection();