給出適配器這樣的:在RecyclerView.Adapter中保留Context/Activity實例是否可以泄漏?
public class MyAdapter extends RecyclerView.Adapter {
private final Activity mActivity;
private final List<Item> mItemList;
public MyAdapter(Activity activity, List<Item> itemList) {
this.mActivity = activity;
this.mItemList = itemList;
}
//[...]
public void onBindViewHolder(ViewHolder holder, int position) {
final Item i = mItemList.get(position);
holder.launchButton.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
mActivity.startActivity(i.getIntent());
});
}
}
正如你所看到的,所需要的活動實例推出的意圖。當然,還有其他方法可以做到這一點(例如使用接口),但問題的關鍵在於是否可以安全地在適配器中保留對實例實例的硬引用
被選爲最佳答案的好解釋 – BamsBamx