从后台线程显示对话框 - 问题

时间:2011-07-06 10:47:33

标签: android multithreading dialog

在我的应用程序中复制文件时,我想询问用户是否要覆盖同名文件,跳过等。以下是该主题的一些代码:

        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。我找不到有什么问题,因为暂停线程的相同方案在我的其他类中有效。看起来线程在发送消息后正在死亡:/任何想法?提前谢谢。

0 个答案:

没有答案