我遇到了SwipeRefreshLayout内存泄漏,并且想知道是否有任何方法可以通过解决方法解决此问题?
在一个空项目中,以滑动布局为主要活动的根源,如果您向下滑动并在刷新时最小化该应用程序,即使您在onStop或onPause中停了下来,它也会继续占用CPU /电池,只要该应用在后台打开即可。
我附加的cpu探查器将永久地重复执行该图像中的操作,而能量探查器在后台显示始终或几乎始终不变的用法。
关于我可以采取什么措施来阻止这种情况的任何想法?
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onStop() { //tried in onPause as well
swipeRefresh.isRefreshing = false
swipeRefresh.clearAnimation() //I tried with/without this
super.onStop()
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/swipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
答案 0 :(得分:1)
处于暂停状态
swipeRefresh.isEnabled = false
OnResume
swipeRefresh.isEnabled = true