คำถามติดแท็ก rx-android

3
ใช้กรณีสำหรับ RxJava schedulers
ใน RxJava มี5 ตัวเลือกที่แตกต่างกันให้เลือก: ทันที () : สร้างและส่งคืน Scheduler ที่ทำงานทันทีบนเธรดปัจจุบัน trampoline () : สร้างและส่งคืน Scheduler ที่จัดคิวงานบนเธรดปัจจุบันที่จะดำเนินการหลังจากงานปัจจุบันเสร็จสมบูรณ์ newThread () : สร้างและส่งคืน Scheduler ที่สร้างเธรดใหม่สำหรับแต่ละหน่วยงาน การคำนวณ () : สร้างและส่งคืน Scheduler สำหรับการคำนวณ สามารถใช้สำหรับการวนรอบเหตุการณ์การประมวลผลการเรียกกลับและงานคำนวณอื่น ๆ อย่าทำงานที่ถูกผูกไว้กับ IO บนตัวกำหนดตารางเวลานี้ ใช้ Schedulers io ()แทน io () : สร้างและส่งคืน Scheduler สำหรับงานที่มีขอบเขต IO การใช้งานได้รับการสนับสนุนโดยเธรดพู Executionor ที่จะเติบโตตามที่ต้องการ สามารถใช้สำหรับการบล็อก IO แบบอะซิงโครนัส …

9
เมื่อใดจึงควรใช้ RxJava ใน Android และเมื่อใดควรใช้ LiveData จากส่วนประกอบทางสถาปัตยกรรมของ Android
ฉันไม่ได้รับเหตุผลในการใช้ RxJava ใน Android และ LiveData จากส่วนประกอบทางสถาปัตยกรรมของ Android มันจะมีประโยชน์มากหากการอธิบายและการใช้ความแตกต่างระหว่างทั้งสองพร้อมกับตัวอย่างตัวอย่างในรูปแบบของรหัสซึ่งอธิบายความแตกต่างระหว่างทั้งสอง

3
รับรหัสสถานะการตอบกลับโดยใช้ Retrofit 2.0 และ RxJava
ฉันกำลังพยายามอัปเกรดเป็น Retrofit 2.0 และเพิ่ม RxJava ในโปรเจ็กต์ Android ของฉัน ฉันกำลังทำการเรียก API และต้องการดึงรหัสข้อผิดพลาดในกรณีที่มีการตอบสนองข้อผิดพลาดจากเซิร์ฟเวอร์ Observable<MyResponseObject> apiCall(@Body body); และในการเรียก RxJava: myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(MyResponseObject myResponseObject) { //On response from server } }); ใน Retrofit 1.9 RetrofitError ยังคงมีอยู่และเราสามารถรับสถานะได้โดยทำ: error.getResponse().getStatus() …

3
ไม่สามารถสร้าง call adapter สำหรับ io.reactivex.Observable
ฉันจะส่งเมธอด get ง่ายๆไปยังเซิร์ฟเวอร์ของฉัน (มันคือแอพ Rails) และรับผลลัพธ์โดยใช้ RxJava และ Retrofit สิ่งที่ฉันทำคือ: อินเทอร์เฟซของฉัน: public interface ApiCall { String SERVICE_ENDPOINT = "https://198.50.214.15"; @GET("/api/post") io.reactivex.Observable<Post> getPost(); } โมเดลของฉันคือ: public class Post { @SerializedName("id") private String id; @SerializedName("body") private String body; @SerializedName("title") private String title; public String getId () { return id; } public String …

8
รวมรายชื่อ Observables และรอจนกว่าทั้งหมดจะเสร็จสมบูรณ์
TL; DR วิธีการแปลงTask.whenAll(List<Task>)เป็นRxJava? รหัสที่มีอยู่ของฉันใช้ Bolts เพื่อสร้างรายการงานแบบอะซิงโครนัสและรอจนกว่างานเหล่านั้นทั้งหมดจะเสร็จสิ้นก่อนที่จะดำเนินการขั้นตอนอื่น ๆ โดยพื้นฐานแล้วมันสร้างขึ้นList<Task>และส่งกลับคนเดียวTaskที่ถูกทำเครื่องหมายเป็นเสร็จสมบูรณ์เมื่อทุกงานในรายการเสร็จสมบูรณ์ตามตัวอย่างเช่นในเว็บไซต์ของสกรู ฉันต้องการแทนที่Boltsด้วยRxJavaและฉันสมมติว่าวิธีนี้ในการสร้างรายการงาน async (ขนาดที่ไม่ทราบล่วงหน้า) และรวมทั้งหมดเป็นงานเดียวObservableเป็นไปได้ แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันได้พยายามมองหาที่merge, zip, concatฯลฯ ... แต่ไม่สามารถได้รับการทำงานในList<Observable>ที่ฉันต้องการจะสร้างขึ้นเป็นพวกเขาทั้งหมดดูเหมือนมุ่งไปที่การทำงานในเวลาเพียงสองObservablesในเวลาถ้าผมเข้าใจเอกสารอย่างถูกต้อง ฉันกำลังพยายามเรียนรู้RxJavaและยังใหม่อยู่มากดังนั้นโปรดยกโทษให้ฉันหากนี่เป็นคำถามที่ชัดเจนหรืออธิบายไว้ในเอกสารที่ไหนสักแห่ง ฉันได้ลองค้นหาแล้ว ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมาก

1
การติดตั้งเพิ่มด้วย Rxjava Schedulers.newThread () เทียบกับ Schedulers.io ()
สิ่งที่เป็นประโยชน์ต่อการใช้Schedulers.newThread()VS Schedulers.io()ในRetrofitคำขอของเครือข่าย ฉันได้เห็นตัวอย่างมากมายที่ใช้io()แต่ฉันต้องการเข้าใจว่าทำไม ตัวอย่างสถานการณ์: observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread())... เทียบกับ observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())... หนึ่งในเหตุผลที่ฉันเห็นคือ - newThread()สร้างเธรดใหม่สำหรับแต่ละหน่วยงาน io()จะใช้เธรดพูล แต่อะไรคืออิทธิพลของข้อโต้แย้งที่มีต่อแอป แล้วมีแง่มุมอะไรอีกบ้าง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.