我有一个简单的ViewPager和FragmentStatePagerAdapter处理7个片段。这些片段包含包含TextViews和ImageViews的LinearLayouts。 我的ViewPager设置为仅在屏幕外保留2个片段(viewPager.setOffscreenPageLimit(2);)。
观察到的结果:当我在片段之间水平滑动时,内存使用量(使用Android Profile观察到)不断增加。一旦达到.8GB,该应用将不再绘制ImageViews。< / p>
我对此感到很好奇,因此我将日志输出添加到OnCreate(),onCreateView(),OnAttach(),OnDetach(),OnDestroy(),并观察到它们每次滑动都被调用(如预期的那样)。当我退出活动时,RAM使用率会保持一段时间,然后在几分钟后开始下降。
我不知道为什么内存使用量会增加。这是片段代码:
@Override
public void onAttach(Context context) {
super.onAttach(context);
Log.e("ViewSchedule_Day", "OnAttach");
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.e("ViewSchedule_Day", "Oncreate");
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mDay = getArguments().getInt(ARG_DAY);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.e("ViewSchedule_Day", "OncreateView");
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_view_schedule__day, container, false);
return view;
}
以上内容是否引起此问题?如果没有,那么哪里可以找到一个好地方?
编辑:我用空片段运行了一些测试(onCreateView只是使视图膨胀,如上面的代码所示),每次我在片段之间滑动时,内存仍在增加。