Android Studio 线程不等待来自分布式网络的响应iota tangle

问题描述

我正在使用 https://github.com/iota-community/java-iota-workshop/blob/master/src/main/java/com/iota/ReadData.java 中的 ReadData 类通过哈希值(bundlehash)从 Iota Tangle(本质上是一个分布式网络)检索消息。

这是我的方法

private String readMessageFromHash(String BundleHash) {
        final String[] s = new String[]{""};
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    s[0] = ReadData.getTMessage(BundleHash);
                } catch (Exception e) {
                    e.printstacktrace();
                }
            }
        });
        thread.start();
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printstacktrace();
        }
        return s[0];
    }

我需要在下一行代码中返回值,但没有多线程我的程序崩溃。 使用多线程它有时可以工作,但大多数时候它不起作用(返回一个空字符串)。

我尝试使用:

        thread.start();
        try {
            while(s[0].length < 1){}
            thread.join();
        } catch (InterruptedException e) {
            e.printstacktrace();
        }
        return s[0];

但它只是无限循环。

我认为问题在于我的程序等待网络响应的时间不够长。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)