在线程中运行函数

时间:2020-08-09 10:24:43

标签: java android multithreading

我试图在线程中运行一个函数,然后再使用数据。 明显的问题是主线程没有在等待(如果发生这种情况) 尽管是一个非常简单的问题,但不幸的是,在互联网上搜索并没有提供任何解决方案。 有什么建议如何正确实施吗?

线程:

            MainActivity.this.runOnUiThread(new Runnable() { // A new thread to get the currencies
                @Override
                public void run() {
                    jsonConversion(mMessage);
                }

功能

    public void jsonConversion(String mMessage) {
    try {

        JSONObject srcJson = new JSONObject(mMessage); // 2 objects, rates and base
        rates = srcJson.getJSONObject("rates"); // Currencies map
        baseCurrency = srcJson.getString("base"); // Base currency
        lastUpdate = srcJson.getString("date"); // Last update


    } catch (JSONException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:-1)

考虑在代码中使用callbacks来实现所需的功能。 让程序等待线程不好(通常),并且使用异步线程将无法实现所需的功能,因为在调用函数时,您将无法从线程获得结果。

因此,通过使用回调,您将确保一切都能按您希望的方式运行,并且仅在参数准备好后才调用方法。

看看thisthis的答案。