我有这个功能应该触发一个通知窗口
public void PushNotif(String notifTitile,String notifText,int notifType)
{
Random r = new Random();
int max = NotificationType.values().length;
final String Title = notifTitile==null?"no Title":notifTitile;
final String Text = notifText==null?"no Text":notifText;
final int Type = notifType==0?r.nextInt(max):notifType;
new Thread(new Runnable()
{
public void run()
{
while (true)
{
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
Display.getDefault().syncExec(new Runnable()
{
public void run()
{
//IT'S NEVER ENTER HERE!!!
NotifierDialog.notify(Title, Text, NotificationType.values()[Type]);
while (!NotifierDialog._shell.isDisposed())
{
if (!Display.getDefault().readAndDispatch()) Display.getDefault().sleep();
}
Display.getDefault().dispose();
}
});
}
}
}).start();
}
我的问题是它永远不会进入run()
函数。
它卡住了Display.getDefault().syncExec(new Runnable()...
,仅此而已。我知道Display.syncExec
应该等到它可以运行,但我不知道如何让它准备好......
帮助?