1
您好Android開發者, 我遵循Android Developers的顯示圖像指南,並且想要從RetainFragment
加載我的初始化緩存,如果我旋轉我的設備。 A在我的ListFragments
onActivityCreated()
方法中執行此操作,但每次創建新片段並且不重複使用片段。在片段中加載RetainFragment
我做這樣的事情: RetainFragment
class RetainFragment extends Fragment {
private static final String TAG = "RetainFragment";
public LruCache mRetainedCache;
public RetainFragment() {}
public static RetainFragment findOrCreateRetainFragment(FragmentManager fm) {
RetainFragment fragment = (RetainFragment) fm.findFragmentByTag(TAG);
if (fragment == null) {
fragment = new RetainFragment();
}
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
}
而且這樣的:ListFragment
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
RetainFragment mRetainFragment = RetainFragment.findOrCreateRetainFragment(getFragmentManager());
LruCache mMemoryCache = RetainFragment.mRetainedCache;
if (mMemoryCache == null)
{
mMemoryCache = new LruCache(cacheSize);
mRetainFragment.mRetainedCache = mMemoryCache;
}
else
{
mMemoryCache = mRetainFragment.mRetainedCache;
}
...
}
這項工作真的很好的工作。謝謝你的提示。 – Happo 2012-08-15 16:25:26
很棒。可惜你添加的行不包含在官方的[documentation](http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html)中。 – Ron 2013-01-12 08:38:39