SwipeRefreshLayout导致内存泄漏

时间:2019-06-27 18:35:18

标签: android

我遇到了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>

enter image description here

1 个答案:

答案 0 :(得分:1)

处于暂停状态

swipeRefresh.isEnabled = false 

OnResume

swipeRefresh.isEnabled = true