मेरे पास एक मुख्य गतिविधि ए है जो डीबी से पूछताछ करने के लिए कर्सर लोडर का उपयोग करता है। यह मैं गतिविधि में बनाने OnCreate() विधि:कर्सर लोडर ऑनलोडर रीसेट() डिवाइस रोटेशन के बाद क्यों कहा जाता है?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
getSupportLoaderManager().initLoader(LOADER_MEASUREMENTS, null, A.this);
}
गतिविधि एक भी लागू करता CursorLoader के लिए 3 कॉलबैक:
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args)
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
public void onLoaderReset(Loader<Cursor> loader)
जब मैं डिवाइस बारी बारी से, मैं सही जीवन चक्र के तरीकों को चलाने देखें:
A.onPause()
A.onStop()
A.onDestroy()
A.onCreate() <-- re-connect to existing loader, onCreateLoader() not called
A.onLoadFinished()
A.onStart()
A.onResume()
फिर मैं एक उप-गतिविधि बी खोलता हूं और अपना डिवाइस घुमाता हूं। जब मैं बी समाप्त करने और गतिविधि एक मैं निम्नलिखित रन देखने के लिए वापसी:
B.onPause()
A.onLoaderReset() <- why does this run?
A.onDestroy()
A.onCreate()
A.onCreateLoader() <- now runs as loader is null
A.onStart()
...
क्यों मेरी लोडर रीसेट, क्योंकि मैं गतिविधि बी खुला था और एक डिवाइस घुमाने किया है? बस उस गतिविधि बी को जोड़ने के लिए डीबी या कर्सर लोडर से कोई लेना देना नहीं है।
[यह प्रश्न] (http://stackoverflow.com/questions/15897547/loader-unable-to-retain-itself-during-certain-configuration-change?lq=1) और संबंधित प्रश्न संबंधित हैं। हो सकता है कि आप वहां कुछ ढूंढ सकें जो मदद कर सके। –
धन्यवाद जॉर्ज - वह प्रश्न बिल्कुल उसी समस्या पर चर्चा करता है जो मेरे पास है। ऐसा लगता है कि यह समर्थन लोडर प्रबंधक के कारण हो सकता है। – MickeyR
यह [लिंक] (https://code.google.com/p/android/issues/detail?id=183783) कहता है कि यह v24 में तय किया जाएगा। – MickeyR