如何修复android中RxBus中的调用复制方法
为什么不帮助我呢? 在我的应用程序中,我希望使用如何修复android中RxBus中的调用复制方法,android,kotlin,rx-java2,Android,Kotlin,Rx Java2,为什么不帮助我呢? 在我的应用程序中,我希望使用RxBus处理事件,使用MVP设计模式!我想在单击一个recyclerview项目时,调用fragment中的一个方法 为此,我使用了RxBus 我写了下面的代码,但当点击物品时调用2次方法 RxBus代码: object RxBus { private val publisher = PublishSubject.create<Any>() fun publish(event: Any) { pub
RxBus
处理事件,使用MVP设计模式!我想在单击一个recyclerview
项目时,调用fragment
中的一个方法为此,我使用了RxBus
我写了下面的代码,但当点击物品时调用2次方法
RxBus代码:
object RxBus {
private val publisher = PublishSubject.create<Any>()
fun publish(event: Any) {
publisher.onNext(event)
}
fun <T> listen(eventType: Class<T>): Observable<T> = publisher.ofType(eventType)
}
class DashboardAvatarsFragment : RoundedBottomSheetDialogFragment(), DashboardAvatarsContracts.View {
@NonNull
private lateinit var presenter: DashboardAvatarsPresenterImpl
private lateinit var token: String
private lateinit var layoutManager: GridLayoutManager
private lateinit var adapter: DashboardAvatarsAdapter
@NonNull
private var disposable: Disposable? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_dashboard_avatars, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//Initialize
presenter = DashboardAvatarsPresenterImpl(requireContext(), this)
layoutManager = GridLayoutManager(requireContext(), 5)
//Get token
token = GoodPrefs.getInstance().getString(PrefsKey.USER_JWT_TOKEN.name, "")
//Send avatar
disposable = RxBus.listen(EventUpdateAvatar.UpdateAvatar::class.java).subscribe {
if (it.updateType == EVENTS_UPDATE_SEND_AVATAR) {
Log.e("uploadAvatarLog", "Event")
presenter.sendAvatarId(token, it.avatarId)
}
}
//Get avatars list
presenter.loadData(token)
}
override fun showAvatars(res: DashboardAvatarsResponse.Res) {
adapter = DashboardAvatarsAdapter(requireContext(), res.avatars, res.baseUrl)
dashboardAvatars_recyclerView.initRecyclerView(layoutManager, adapter)
}
override fun updateAvatar() {
RxBus.publish(EventUpdateAvatar.UpdateAvatar(EVENTS_UPDATE_AVATAR, ""))
Log.e("uploadAvatarLog", "Receive")
}
}
我使用了Log.e
来查看日志,但是请给我看重复的一些日志
2019-05-07 12:15:35.901 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.902 10259-10259/com.app.android E/uploadAvatarLog: Adapter
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Send
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Receive
2019-05-07 12:15:36.008 10259-10259/com.app.android E/uploadAvatarLog: Send
我如何修复它?可能的重复可能的重复
2019-05-07 12:15:35.901 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.902 10259-10259/com.app.android E/uploadAvatarLog: Adapter
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Send
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Receive
2019-05-07 12:15:36.008 10259-10259/com.app.android E/uploadAvatarLog: Send