等待函数完成执行并使用结​​果

这是场景

我有一个活动(A),它有一个按钮和textview。 我有另一个类(B),其中包含执行各种function的方法。 在创建B类实例后,单击该按钮时会从A调用其中一个公共方法。 该方法需要一段时间才能执行(它在类中调用另一个耗时的私有方法)并返回B类私有成员之一的值。

问题是该方法返回成员的初始值而不是计算后的值。 有没有办法强制函数等待一段时间并返回计算成员的值?

public String getItem(){ startFunction(); //Time consuming Function generateItem(); //Function which uses results of startFunction() to generate item and set values to mItem return mItem; //mItem is the private member of class B } 

返回的值始终是mItem的默认值,即构造函数中设置的值。 startFunction(WiFi扫描)所花费的时间是任意的。 任何帮助将非常感激。

当您创建B类的实例时,请确保它在其构造函数中将Context作为参数。 然后你可以尝试使用AsyncTask (假设你知道它)。 然后将耗时的函数放在doInBackground()并在doInBackground()中等待其值的函数

Android开发是事件驱动的,你通常不应该阻塞等待结果的线程(至少不是主/ ui线程,因为你的应用程序可能被认为没有响应)。

最好创建一个回调接口,让metod需要很长时间才能执行,在计算完成后调用该接口上的方法。

顺便说一下,你的post表明计算已经是异步的? 否则,您将在方法完成后获得结果。