当我使用InstantSearch安卓系统时,会出现内存泄漏。
请参阅下面的MainActivity,它泄漏内存..。hprof表明这是com.algolia.instantsearch.ui.views.Hits的一个问题。当Activity被销毁时,有人知道如何销毁这个视图吗?
public class MainActivity extends AppCompatActivity {
private Searcher searcher;
InstantSearch helper;
Hits hits;
LinearLayout activity_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hits= (Hits) findViewById(R.id.hits);
activity_main= (LinearLayout) findViewById(R.id.activity_main);
searcher = Searcher.create("app_id","secret_key","Items");
helper = new InstantSearch(this, searcher);
helper.search();
}
@Override
protected void onDestroy() {
searcher=null;
helper=null;
hits.clear();
hits.removeAllViewsInLayout();
hits.removeAllViews();
hits.destroyDrawingCache();
hits.setBackground(null);
hits.setBackgroundResource(0);
hits=null;
activity_main.removeAllViewsInLayout();
activity_main.removeAllViews();
activity_main.destroyDrawingCache();
activity_main.setBackground(null);
activity_main.setBackgroundResource(0);
activity_main=null;
Log.i("AppInfo","Destroy");
super.onDestroy();
}
}这是我的activity_main.xml
<LinearLayout
android:id="@+id/activity_main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white"
xmlns:algolia="http://schemas.android.com/apk/res-auto">
<com.algolia.instantsearch.ui.views.Hits
android:id="@+id/hits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
algolia:itemLayout="@layout/hits_item"
algolia:autoHideKeyboard="true"
algolia:hitsPerPage="20"/>这是我的hits_item.xml
<layout xmlns:algolia="http://schemas.android.com/apk/res-auto">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/profImg"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/placeholder_video"
algolia:attribute='@{"profilePic"}'/>
<TextView
android:id="@+id/hit_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
algolia:attribute='@{"name"}'
algolia:highlighted='@{true}'/>
</RelativeLayout>
发布于 2017-11-09 15:54:37
我们刚刚发布了修复程序。如果更新到1.1.4,现在就可以修复这个问题了。只需添加活动的onDestroy,代码如下:
@Override
protected void onDestroy() {
// ... your code ...
searcher.destroy(); // This will clean and release different listeners
super.onDestroy();
}你可以看到它,这里
https://stackoverflow.com/questions/46890708
复制相似问题