मेरे पास एक ViewPager के साथ एक FragmentActivity है - इस ViewPager में तीन ListViews शामिल हैं - प्रत्येक के पास अपने स्वयं के अद्वितीय एडाप्टर (और अद्वितीय डेटा सेट) हैं।एकाधिक एसिंक टास्कलोडर एक ही गतिविधि में - क्या प्रत्येक लोडर को क्रिएट में प्रारंभ करना होगा?
मैं इन एडेप्टरों को पॉप्युलेट करने के लिए AsyncTaskLoader का उपयोग करना चाहता हूं, लेकिन केवल जब व्यूपेजर में दिया गया दृश्य चुना जाता है।
क्या गतिविधि की ऑन क्रिएट विधि में लोडर को इनिट करना आवश्यक है? (नीचे दिए गए कोड)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_foo);
getSupportLoaderManager().initLoader(0, null, this);
getSupportLoaderManager().initLoader(1, null, this);
getSupportLoaderManager().initLoader(2, null, this);
}
या यह कॉल करने के लिए initLoader (...) सहभागी, इस तरह के OnPageChangeListener.onPageSelected के लिए एक श्रोता के परिणाम के रूप फोन ठीक है?
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int newPage) {
getSupportLoaderManager().initLoader(newPage, null, this);
}
...
}
मैं संभवतः 3 समय लेने लोडर प्रदर्शन करने के लिए सामने अगर उपयोगकर्ता ही कभी पेजर में पहली बार देखने पर लग सकता है से बचने के लिए चाहते हैं।
संपादित करें: या क्या यह एक बेहतर डिज़ाइन होगा कि ViewPager प्रत्येक दृश्य के लिए एक टुकड़ा का उपयोग करे, और प्रत्येक टुकड़ा अपने लोडर के प्रबंधन के लिए जिम्मेदार होगा?
मैंने आखिरकार लिस्टफ्रैगमेंट के उप-वर्गों के साथ एक व्यूपेगर का उपयोग किया (प्रत्येक में अपना स्वयं का लोडर होता है - जिसे क्रिएटिव्यू से शुरू किया जाता है) - लेकिन मैं अभी भी जानना चाहूंगा कि उपर्युक्त करना ठीक है या नहीं बस एक आपदा होने का इंतजार है। – NPike