在我的应用程序中复制文件时,我想询问用户是否要覆盖同名文件,跳过等。以下是该主题的一些代码:
if(target.exists()){
synchronized(this){
while(wait){
try{
popupHandler.sendMessage(popupHandler.obtainMessage(0, target));
wait();
}catch (Exception e){
e.printStackTrace();
}
}
}
}
这是我的经纪人:
Handler popupHandler = new Handler(){
@Override
public void handleMessage(Message m){
c.showConfirmDialog("The file " + ((File)m.obj).getName() + " exists. What do you want to do?",
"Overwrite", "Skip", "Keep both", Explorer.PASTE_CONFIRM, null);
}
};
从对话框中选择一个类似的选项:
public void resume(){
synchronized(copyThread){
copyThread.wait = false;
copyThread.notify();
}
}
这就是问题所在。 resume()上的copyThread始终为null。我找不到有什么问题,因为暂停线程的相同方案在我的其他类中有效。看起来线程在发送消息后正在死亡:/任何想法?提前谢谢。