В моем приложении при копировании файлов я хочу спросить пользователя, хочет ли он перезаписать файл с тем же именем, пропустить и т. Д. Вот некоторый код из потока:
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();
}
}
И тут возникает проблема. CopyThread в resume () всегда имеет значение null. Я не могу найти, что не так, потому что та же схема с приостановкой потока работает в моем другом классе. Похоже нить умирает после отправки сообщения: / Есть идеи? Заранее спасибо.