在Midlet中使用线程:如何监听正在运行的线程?

时间:2010-02-09 11:05:09

标签: java multithreading java-me

在我的类中,我在构造函数中有一个内联线程,用于从远程站点加载对象:

Thread readSite = new Thread(new Runnable() {       
    public void run() { 
        site.loadStuff();
    } 
});
readSite.start();

我希望在线程完成之前显示“加载”消息。所以之前上面的代码我会显示加载消息。

上面的代码后,我会显示我想要继续的屏幕。

代码如下所示:

showLoadingView(); //tells the user it is waiting

Thread readSite = new Thread(new Runnable() {       
    public void run() { 
        site.loadStuff();
    } 
});
readSite.start();

showStuffView(); //works with the data retrieved from the site instance

现在,主线程当然会继续, showStuffView()会直接执行。

我现在可以让主线程等待 readSite 线程,但是然后用户无法接受向用户显示的连接请求('是否可以使用通话时间?')(因为负责的线程我睡着了。)

另一方面,我无法从 readSite 主题执行 showStuffView()

我希望你们能解释如何等待这个帖子。我调查了同步,但无法找到一个很好的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为这是线程的常见问题,您可以使用布尔变量解决这个特殊问题。但出于一般目的,我认为observer pattern是好的。