Android 可流动事件不按顺序(即不按顺序)
我在一个表上有Android 可流动事件不按顺序(即不按顺序),android,kotlin,rx-java2,Android,Kotlin,Rx Java2,我在一个表上有Flowable订阅,我使用以下方法获取所有数据: mySurveyViewModel.getAllMySurveys() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()).subscribe({ showMySurveysList(it) }, {
Flowable
订阅,我使用以下方法获取所有数据:
mySurveyViewModel.getAllMySurveys()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe({
showMySurveysList(it)
}, {
})
MySurveyViewModel
fun getAllMySurveys(): Flowable<List<MySurvey>> {
return mySurveyRepository.getAllMySurveys()
}
音频上传和计数更新
for (audio in medias) {
var file = File(audio.file_name)
var mimeType = ""
var parameter_name = ""
if (step == step_audio_send) {
mimeType = "audio/*"
parameter_name = "audio_recording"
}
val filePart = MultipartBody.Part.createFormData(parameter_name, file.name, RequestBody.create(MediaType.parse(mimeType), file))
var call: retrofit2.Call<JSONObject>? = null
call = surveyApi.saveSurveyAudio("JWT " + AppPreferences.getString(user_id, "")!!,
audio.submitted_survey_id, audio.q_id,
audio.repeatable_id,
audio.audio_marker, filePart)
try {
var response = call!!.execute()
if (response.isSuccessful) {
mySurveyViewModel.incrementSurveyMediaCount(audio.submitted_survey_id)
}
} catch (ex: Exception) {
ex.printStackTrace()
}
}
for(媒体中的音频){
var file=文件(audio.file\u名称)
var mimeType=“”
var参数_name=“”
如果(步骤==步骤\u音频\u发送){
mimeType=“audio/*”
参数\u name=“音频\u录制”
}
val filePart=MultipartBody.Part.createFormData(参数_name,file.name,RequestBody.create(MediaType.parse(mimeType),file))
变量调用:2。调用?=null
call=surveyApi.saveSurveyAudio(“JWT”+AppPreferences.getString(user\u id,”)!!,
audio.q\u调查id,audio.q\u id,
audio.repeatable_id,
audio.audio_标记,文件部分)
试一试{
var response=call!!.execute()
if(response.issucessful){
mySurveyViewModel.incrementSurveyMediaCount(音频.已提交的\u调查\u id)
}
}捕获(例如:异常){
例如printStackTrace()
}
}
请发布更新计数的逻辑,以及该计数存储的位置和方式。@SanlokLee:我添加了音频上传和计数更新逻辑。代码看起来不错。。顺序应与媒体中的顺序相同
for (audio in medias) {
var file = File(audio.file_name)
var mimeType = ""
var parameter_name = ""
if (step == step_audio_send) {
mimeType = "audio/*"
parameter_name = "audio_recording"
}
val filePart = MultipartBody.Part.createFormData(parameter_name, file.name, RequestBody.create(MediaType.parse(mimeType), file))
var call: retrofit2.Call<JSONObject>? = null
call = surveyApi.saveSurveyAudio("JWT " + AppPreferences.getString(user_id, "")!!,
audio.submitted_survey_id, audio.q_id,
audio.repeatable_id,
audio.audio_marker, filePart)
try {
var response = call!!.execute()
if (response.isSuccessful) {
mySurveyViewModel.incrementSurveyMediaCount(audio.submitted_survey_id)
}
} catch (ex: Exception) {
ex.printStackTrace()
}
}