当前位置: 首页 > 知识库问答 >
问题:

Android:从异步任务调用方法

陆伟
2023-03-14

我想调用一个方法,从一个AsyncWork,从另一个类,我正在尝试这个

String sentence, signo="geminis";
sentence = new ExtendedActivity.Parse().getHoroscope("daily",signo);

但我得到错误“ExtendedActivity不是一个封闭类”。你能帮助我吗?

我的扩展活动:

public class ExtendedActivity extends BaseActivity {
(...)
public class Parse extends AsyncTask<String, Void, String> {

        private final ProgressDialog dialog = new ProgressDialog(ExtendedActivity.this);


        @Override
        public String doInBackground(String... params) {

            String option, type, dat, site="", description="", s="";;

            //get the user option
            Bundle extras = getIntent().getExtras();
            option = extras.getString("OPTION");
            type = extras.getString("TYPE");

            description = getHoroscope(type, option);

            return description;
        }


        public String getHoroscope(String type, String option){
            String description="", site;
            (...)
        }
     }

共有1个答案

仉英朗
2023-03-14

你可以:

new ExtendedActivity()。新建Parse()。占星术()

或:

public class ExtendedActivity {
    public static class Parse extends AsyncTask<String, Void, String> {

        @Override
        public String doInBackground(String... params) {

            String description = "";

            description = getHoroscope();

            return description;
        }


        public static String getHoroscope() {
            return null;
        }
    }
}

并这样称呼它:new ExtendedActive。解析()。获取星座();

 类似资料:
  • 我正在尝试使用以下代码: 是我在Android应用程序中使用的OAuth2Client的一部分。我得到这个错误: 我会提供一些帮助。 谢谢

  • 我正试图从同步方法运行异步方法。但是我不能等待异步方法,因为我在同步方法中。我一定不理解TPL,因为这是我第一次使用它。 每个方法都需要前一个方法来完成,因为第一个方法的数据用于第二个方法。 Await运算符只能在异步方法中使用。考虑用'async'修饰符标记此方法,并将其返回类型更改为'task' 但是,如果我使用async修饰符,这将是一个异步操作。因此,如果我对的调用没有使用await运算符

  • 这是在一次Android采访中被问到的。有人问我是否可以从异步任务 1 的 doInBackground() 方法(让它成为 Task1)启动另一个异步任务(让它成为 Task2)。我浏览了文档,其中说了以下内容: 必须在UI线程上创建任务实例。 必须在 UI 线程上调用 execute(Params...)。 根据这些陈述,我认为从另一个任务的后台方法启动一个任务是不可能的。此外,async任务

  • 我可能还不够清楚--情况是,我的现有代码不支持异步,我希望使用新的库,如System.net.http和只支持异步方法的AWS SDK。因此,我需要弥补这一差距,并能够拥有可以同步调用的代码,然后可以在其他地方调用异步方法。 我读了很多书,有很多次有人问这个问题,也有人回答这个问题。 从非异步方法调用异步方法

  • 我们有一个async/await方法,它通过实体框架调用存储的过程,该框架由同步方法调用。 需要很长的时间来执行,这可能就是我们编写async/await的原因,它可以被多个地方使用。 我知道我们不应该混合异步和同步调用,但假设我们有这种情况并且我们正在使用 从同步方法 调用异步方法 GetLoanDataAsync,我理解该方法 - 将在后台线程上运行。 我的问题是,如果我们有一个异步方法< c