我刚开始构建一个简单的Android应用程序,希望在后台线程中进行网络请求,然后使用服务器响应更新主线程(UI线程)。到目前为止,我使用了
我已经将RxJava依赖项包含到基本的Android项目中,并编写了一个使用AsyncTasks进行网络请求的非常简单的主活动。现在我尝试用响应式方式替换AsyncTask实现,但卡在有关Observable和Observer的所有信息上。我不确定什么是最小但完全可工作的示例所必需的。
我真的很感谢您能帮助我将主要部分转换为反应式实现,因为我不知道如何处理从响应字符串生成Observable并订阅Observer。
谢谢。
AsyncTasks
,但是未来的实现我想使用reactive Java (RxJava
)。我以前没有做过响应式调用,所以想要一个简单但完整的示例(Observable和Observer的创建和订阅),以便可以进一步构建。我已经将RxJava依赖项包含到基本的Android项目中,并编写了一个使用AsyncTasks进行网络请求的非常简单的主活动。现在我尝试用响应式方式替换AsyncTask实现,但卡在有关Observable和Observer的所有信息上。我不确定什么是最小但完全可工作的示例所必需的。
我真的很感谢您能帮助我将主要部分转换为反应式实现,因为我不知道如何处理从响应字符串生成Observable并订阅Observer。
谢谢。
package com.example.reactiveTest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button btnSend = null;
private TextView result = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btnSend = findViewById(R.id.button_send);
this.result = findViewById(R.id.result);
}
public void onClickBtnSend(View view) {
new SomeTask().execute("Just some String");
}
class SomeTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
// server request returning response String
return response;
}
@Override
protected void onPostExecute(String string) {
// update UI with response String
result.setText(string);
}
}
}
onError
、onNext
和onComplete
方法有什么区别呢?它们到底是用来做什么的? - avermaet