समस्या सबसे अधिक संभावना है कि आप स्प्लैश स्क्रीन (किसी प्रकार के डायलॉग जैसे कि ProgressDialog I ग्रहण) को उसी धागे में चला रहे हैं जैसे सभी काम किए जा रहे हैं। यह स्प्लैश स्क्रीन के दृश्य को अपडेट होने से रखेगा, जो इसे स्क्रीन पर प्रदर्शित होने से भी बचाए रख सकता है। आपको स्प्लैश स्क्रीन प्रदर्शित करने की आवश्यकता है, AsyncTask के एक उदाहरण को किक करें अपने सभी डेटा को डाउनलोड करने करें, फिर टास्क पूरा होने के बाद स्प्लैश स्क्रीन को छिपाएं।
तो आपकी गतिविधि का ऑनक्रिएट () विधि बस एक ProgressDialog बनाएगी और उसे दिखाएगी। फिर AsyncTask बनाएं और इसे शुरू करें। मैं AsyncTask को आपकी मुख्य गतिविधि का एक आंतरिक वर्ग बनाऊँगा, इसलिए यह आपकी गतिविधि में कुछ वैरिएबल में डाउनलोड किए गए डेटा को स्टोर कर सकता है और अपनी ऑनपॉस्टक्यूट () विधि में ProgressDialog को बंद कर सकता है।
सुनिश्चित नहीं है कि बिना कोड दिखाए अब कैसे विस्तृत किया जाए, इसलिए यहां यह है:
public class MyActivity extends Activity {
private ProgressDialog pd = null;
private Object data = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.pd = ProgressDialog.show(this, "Working..", "Downloading Data...", true, false);
new DownloadTask().execute("Any parameters my download task needs here");
}
private class DownloadTask extends AsyncTask<String, Void, Object> {
protected Object doInBackground(String... args) {
Log.i("MyApp", "Background thread starting");
return "replace this with your data object";
}
protected void onPostExecute(Object result) {
MyActivity.this.data = result;
if (MyActivity.this.pd != null) {
MyActivity.this.pd.dismiss();
}
}
}
}
स्पष्ट रूप से कुछ टुकड़े हैं जिन्हें आपको वहाँ भरने की आवश्यकता है, लेकिन यह कोड चलना चाहिए और आपको एक अच्छा प्रारंभिक बिंदु देना चाहिए (यदि कोई कोड त्रुटि है तो मुझे माफ़ कर दें, मेरे पास Android SDK तक पहुंच नहीं है क्योंकि मैं यह लिख रहा हूं वर्तमान में)।
Android में AsyncTasks के विषय पर कुछ और अच्छे पढ़ने को यहाँ और यहाँ पाया जा सकता है ।