HPROF Analyzer/Analyzer任务是android studio 2中的一个很好的工具,可以帮助检测内存泄漏.它比使用eclipse MAT工具耗时少.但是,我无法在AS3中使用新的Android Profiler找到它.
任何帮助是极大的赞赏!
背景
我有一个用户界面,显示用户全名列表,每个项目都有一个喜欢/不喜欢按钮。我正在使用一个ListAdapter底层用途DiffUtil和AsyncListDifferAPI。用户列表作为 LiveData 从 Room 数据库接收,并按"isLiked" 排序。
问题
每当点击“like”按钮时,Room(因为我正在使用 LiveData)会将新数据重新提交到适配器。问题是,由于列表按“isLiked”排序,喜欢的用户将更改其位置,并且 RecyclerView 将始终滚动到新位置。
我不想看到更新项目的新位置。那么,如何禁用自动滚动行为?
我尝试过的
MainActivity.kt
..
val userAdapter = UsersAdapter(this)
val ll = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
recyclerView.apply {
layoutManager = ll
adapter = userAdapter
itemAnimator = null
setHasFixedSize(true)
}
viewModel.users.observe(this, {
// This will force the recycler view to scroll back to the previous position
// But it's more of a workaround than a clean solution.
val pos = ll.findFirstVisibleItemPosition()
userAdapter.submitList(it) { …Run Code Online (Sandbox Code Playgroud) android android-recyclerview android-paging android-diffutils android-listadapter
我正在尝试在我的Android应用程序中使用Bob叔叔的干净架构.所以,我跟着这个人基于RxAndroid,Dagger 2 for DI 的伟大实现.
我知道要从数据存储(云或本地数据库或磁盘)获取数据,Interactors(域层中的用例类)将调用数据层中的存储库.
在我的例子中,我必须执行两个并行的REST API调用(Foursquare API和Google放置API),然后比较每次调用的接收数据.
我是否必须将这些Retrofit调用的实现放在数据层中或域层中的Interactors内?
如果任何外部API调用属于数据层,那么在Bob叔叔的方法中,交互者的角色到底是什么?
我是这种方法的新手,非常感谢任何帮助!