Java 安卓:倒计时闩锁不工作
下面是我使用倒计时锁存器和执行器服务的类。我从我的活动中开始测试方法。当我运行此代码时,倒计时锁不会从等待中出现Java 安卓:倒计时闩锁不工作,java,android,countdownlatch,Java,Android,Countdownlatch,下面是我使用倒计时锁存器和执行器服务的类。我从我的活动中开始测试方法。当我运行此代码时,倒计时锁不会从等待中出现 public class Test implements Tester.StartListener, Tester.StopListener, Runnable{ private CountDownLatch latch; ExecutorService executorService; Context context; ListElement lis
public class Test implements Tester.StartListener, Tester.StopListener, Runnable{
private CountDownLatch latch;
ExecutorService executorService;
Context context;
ListElement listElement;
int countDown;
final String user = "palapi_android@tourmalinelabs.com";
public Test(Context context) {
this.context = context;
this.listElement = listElement;
}
public void startTest(int nTimes) throws InterruptedException {
this.countDown = nTimes;
executorService = Executors.newSingleThreadExecutor();
latch = new CountDownLatch(countDown);
executorService.execute(this);
latch.await();
}
@Override
public void run() {
setText("Running");
Tester.Start(context, user, this);
}
@Override
public void OnStarted() {
Tester.Stop(context, this);
}
@Override
public void OnFail( int reason ) {
Log.d("Failure", "failed because " + reason);
}
@Override
public void OnStopped() {
setText(String.valueOf(countDown));
countDown --;
latch.countDown();
if( countDown >= 0) {
runAfterDelayInRange(new Runnable() {
@Override
public void run() {
Tester.Start(context, user, Test.this);
}
});
} else {
setText("Done");
}
}
protected void setText(final String text) {
getHandler().post(new Runnable() {
@Override
public void run() {
if (listElement != null) {
listElement.setTestResult(text);
}
LauncherActivity activity = (LauncherActivity) context;
activity.notifyDataSetChanged();
}
});
}
protected void runAfterDelayInRange(Runnable action) {
getHandler().post(action);
}
private Handler getHandler(){
return new Handler(context.getMainLooper());
}
}
有人能告诉我我做错了什么吗?提前谢谢你试着在它坏掉的地方调试我试着调试了。它在startTest方法中的latch.await处命中断点,然后不再移动。您可能希望在此之前放置一个断点,以便可以在run方法中进行调试。