gpt4 book ai didi

java - android自定义库的架构

转载 作者:行者123 更新时间:2023-11-29 21:01:47 25 4
gpt4 key购买 nike

我正在构建一个 android 库。主类包括 connectgetUserSession 等方法。工作流程包括几个步骤-

第一步:在 getUserSession 方法中。我需要向外部 api 发送一个 Http POST 请求并且接收响应数据(sessionKey、id、name 等)。它就像一种身份验证方法。

第 2 步:在连接方法中。它使用第 1 步中的响应数据,然后我需要连接到 websocket 服务器接收响应数据(userdetails、profilepic 等)。

第三步:在 Activity 中传递第 2 步的响应数据。

我希望第 1 步和第 2 步同步,因为如果没有第 1 步,第 2 步将无法工作。而且我不想在处理时阻止该应用程序。经过一些研究后,我发现这可以使用 AsyncTask 类。但似乎我无法从 doInBackgroundonPostExecute 方法返回值。如何完成这个任务?

最佳答案

您必须为第一个 AsyncTask 设置监听器(接口(interface))请尝试以下代码

  interface AsyncTaskListener{
public void onTaskCompleted(Object<Type> value);
}

public class DemoAsyncTask extends AsyncTask<String,Void,Void>{
AsyncTaskListener listener;
public DemoAsyncTask(AsyncTaskListener listener){
this.listener = listener;
}
@Override
protected String doInBackground(Void... params) {
///do some task
return someResult;
}
@Override
protected void onPostExecute(String result) {
listener.onTaskCompleted(result);
}

//从activity或fragment中调用异步任务

DemoAsyncTask task = new DemoAsyncTask(new AsyncTaskListener(){
@Override
public void on onTaskCompleted(Object<Type> value);{
//do your second step here
})
};
task .execute();

关于java - android自定义库的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com