传递函数时从Async调用获取结果的更好方法

时间:2017-09-03 01:43:09

标签: java android

我正在尝试将函数传递给Async类,该函数假设将结果返回给调用活动,到目前为止,我最好的尝试是以下代码。

这个问题是我在顶部定义了result因此可以通过OnEventCompleteCallBack函数访问它,但同时我将它返回到调用活动,它听起来不对。

另外,我的代码涉及调用两个函数来获取我需要的结果。 有没有更好的方法来实现这一目标?

理想情况下,我想将函数functionIWouldLikeToPass传递给Async,但我读到这在Java中是不可能的(与C#相反)。

我的活动:

Private MyOtherClass result;

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        //....
        myResult = getResultAsync(str);
        //...   
    }

    public MyOtherClass functionIWouldLikeToPass(MyClass myClass){

    //do stuff with myClass
    //return MyOtherClass type to the result call to the activity
    }

    public MyOtherClass getResultAsync(String str) {

        new AsyncTask_GetSingeValue(new IOnEventCompleteCallBack() {

            @Override
            public void OnEventCompleteCallBack(MyClass asyncResult) {
                result= functionIWouldLikeToPass(asyncResult);
            }
        }).execute(str);

        return result;

    }

0 个答案:

没有答案