Java android自定义库的体系结构
我正在构建一个android库。 主类包括Java android自定义库的体系结构,java,android,android-asynctask,return-value,Java,Android,Android Asynctask,Return Value,我正在构建一个android库。 主类包括connect,getUserSession等方法。工作流包括几个步骤- 步骤1: 在getUserSession方法中。我需要发送一个HttpPOST请求到外部api和 接收响应数据(sessionKey、id、name等)。它就像一种身份验证方法 步骤2: 在连接方法中。它使用步骤1中的响应数据,然后我需要连接到websocket服务器以接收响应数据(userdetails、profilepic等) 步骤3: 传递活动中步骤2的响应数据 我希望第一步
connect
,getUserSession
等方法。工作流包括几个步骤-
步骤1:
在getUserSession
方法中。我需要发送一个Http
POST请求到外部api和
接收响应数据(sessionKey、id、name等)。它就像一种身份验证方法
步骤2:
在连接方法中。它使用步骤1中的响应数据,然后我需要连接到websocket
服务器以接收响应数据(userdetails、profilepic等)
步骤3:
传递活动中步骤2的响应数据
我希望第一步和第二步是同步的,因为没有第一步,第二步就不能工作。我不想在处理过程中阻止应用程序。在做了一些研究后,我发现这可以通过使用AsyncTask类来完成。但我似乎无法从doInBackground
和onPostExecute
方法返回值。如何完成这项任务 您必须为第一个异步任务设置侦听器(接口)请尝试下面的代码
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);
}
接口异步任务侦听器{
已完成的公用void onTaskCompleted(对象值);
}
公共类DemoAsyncTask扩展了AsyncTask{
异步任务侦听器;
公共DemoAsyncTask(AsyncTaskListener侦听器){
this.listener=listener;
}
@凌驾
受保护字符串doInBackground(无效…参数){
///做一些工作
返回一些结果;
}
@凌驾
受保护的void onPostExecute(字符串结果){
onTaskCompleted(结果);
}
//从活动或片段调用异步任务
DemoAsyncTask task = new DemoAsyncTask(new AsyncTaskListener(){
@Override
public void on onTaskCompleted(Object<Type> value);{
//do your second step here
})
};
task .execute();
DemoAsyncTask任务=新建DemoAsyncTask(新建AsyncTaskListener()){
@凌驾
onTaskCompleted上的public void(对象值){
//在这里做你的第二步
})
};
task.execute();
谢谢,简单明了。非常感谢!您好,您能提供一些好的资料来学习这项技术吗?请检查此项