通知弹出窗口不适用于单个实例

Posted

技术标签:

【中文标题】通知弹出窗口不适用于单个实例【英文标题】:Notification popup doesn't run with single instance 【发布时间】:2014-08-25 06:46:24 【问题描述】:

我想在用户第二次尝试运行应用程序时显示通知弹出窗口,因此我创建 NotificationPop obj 并调用该方法在我的单个实例类中显示对话框,但是,当应用程序第二次运行时它不显示弹出窗口当我的 NotificationPop 窗口没有问题时,它运行正常但是当我在 Single Instance 中调用它时不会显示。在 Netbeans 的输出窗口中,它显示的对话框也已关闭。我错过了这里的任何一步吗?

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;

public class SingleInstance 

    public static File f;
    public static FileChannel channel;
    public static FileLock lock;
    public static TrayCon trayobj;
    public static boolean checkstatus;
    public static NotificationPop obj;

    public static void main(String args[]) throws IOException 
        try 
            f = new File("key");
            if (f.exists()) 
                f.delete();
            
            channel = new RandomAccessFile(f, "rw").getChannel();
            lock = channel.tryLock();
            if (lock == null) 
                obj = new NotificationPop();
                obj.displaypopupmessage();
                System.exit(0);
                channel.close();
                throw new RuntimeException("Only 1 instance can run");
            

            java.awt.EventQueue.invokeLater(new Runnable() 
                public void run() 

                    trayobj = new TrayCon();
                    trayobj.CreateTrayCon(trayobj);
                
            );

         catch (IOException ex) 
        
    

【问题讨论】:

为什么要删除文件(尤其是在锁定部分之外)? 你的意思是如果片段,让我添加它, 我确定我在这里发布了两个(-三个)SSCCE/MCVE 形式的各种代码(最重要的),用于单实例 FileIO/Socket/???,来自您的代码无法提出建议 @mad 程序员,如果文件夹中已存在文件,则避免重复 这个问题可能对你有用:***.com/questions/177189/… 【参考方案1】:

好的,我添加了线程睡眠 6 秒,修复了问题

        if (lock == null) 

        obj = new NotificationPop();
        obj.proragramstatuswarning();
        Thread.sleep(6000);
        System.exit(0);
        channel.close();
        throw new RuntimeException("Only 1 instance can run");


    

【讨论】:

以上是关于通知弹出窗口不适用于单个实例的主要内容,如果未能解决你的问题,请参考以下文章

html 弹出窗口的GA事件 - 仅适用于按钮(不适用于文本或图像链接)

html 弹出窗口的GA事件 - 仅适用于按钮(不适用于文本或图像链接)

html 弹出窗口的GA事件 - 仅适用于按钮(不适用于文本或图像链接)

html 弹出窗口的GA事件 - 仅适用于按钮(不适用于文本或图像链接)

JavaFX - 从通知弹出窗口中检索对象

onClick 事件不适用于 android 中的嵌套列表视图项控件