如何在 AsyncTask 中调用 Activity 方法 [英] How to call Activity method in an AsyncTask

查看:19
本文介绍了如何在 AsyncTask 中调用 Activity 方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的 AsyncTaskonPostExecute 之后调用一个 Activity 方法.你知道我该怎么做吗?

I would like to call an Activity method after the onPostExecute of my AsyncTask. Do you know how I can do that?

我想在onPostExecute中调用sendSMS(String phoneNumber, String message)方法.

推荐答案

一种方法是通过 PostTask 构造函数传递一个 Activity 的实例,例如:

One way is to pass an instance of the Activity through PostTask constructor, something like:

private class PostTask extends AsyncTask<String, Integer, String>
{
    private AsyncBigCalculActivity activity;

    public PostTask(AsyncBigCalculActivity activity)
    {
        this.activity = activity;
    }

    // ...
}

并在创建 PostTask 实例时,传递活动实例:

and on creating the PostTask instance, pass the activity instance:

new PostTask(this).execute();

现在您可以从 PostTask 中调用 sendSMS(),例如:

Now you can invoke sendSMS() from within PostTask, like:

activty.sendSMS(...);

<小时>

另请注意,如果您将 PostTask 定义为活动内的私有类,那么您可以像这样调用 sendSMS():


Also note that if you are defining the PostTask as a private class inside the activty, then you can invoke sendSMS() like:

AsyncBigCalculActivity.this.sendSMS(...);

这篇关于如何在 AsyncTask 中调用 Activity 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆