【发布时间】:2011-12-28 05:00:50
【问题描述】:
在我的活动课上,我想执行一系列长时间的计算,当我按下一个按钮时,这些计算需要大约 5 秒才能完成。因此,为了做到这一点,我创建了一个新类,它在其运行方法中执行所有计算(因为它实现了 Runnable),完成后我将变量设置为 true 以表明这一点。在检查按钮是否被按下的代码中,我启动了一个新线程,将我的类传入其中,然后检查 run 方法是否已完成。如果它完成了,我就打印数据。这样做的问题是,当我检查计算是否已经完成时,它们实际上还没有完成,所以它通过了那行代码并且从不打印数据。我试过做异步类方法,但我仍然认为它不起作用。当我按下按钮并继续检查是否已完成以便我可以打印数据时,有没有办法创建线程? Activity 中的哪段代码实际上被一遍又一遍地执行?感谢您提供任何信息。
if(v.equals(this.button)) {
EditText param1 = (EditText)findViewById(R.id.param1);
EditText param2 = (EditText)findViewById(R.id.param2);
calculations = new MathCalc(param1.getText().toString(), param2.getText().toString());
new Thread(calculations).start();
while(!calculations.isReady());
Intent intent = new Intent(this,Show.class);
intent.putExtra("show1", calculations.getResult());
startActivity(intent);
}
这是我想要实现的。
【问题讨论】:
标签: android multithreading button asynchronous