2010-02-09 20 views
11

यह बटन मेरी प्रारंभ गतिविधि पर दिखाया गया है। इसे दबाए जाने के बाद एक नई गतिविधि लॉन्च की जाएगी लेकिन उस नई गतिविधि के प्रारंभ में कुछ समय लगता है, कुछ डेटा इंटरनेट से इकट्ठा किया जाता है। यह आधा काम करता है। प्रगति संवाद दिखाया गया है लेकिन प्रगति चक्र कताई नहीं है।नई गतिविधि शुरू करते समय प्रगति संवाद

क्या कोई मुझे बता सकता है कि ऐसा क्यों होता है?

Button b4 = (Button) findViewById(R.id.Button01); 
     b4.setOnClickListener(new View.OnClickListener() { 
      public void onClick (View view) {  
      final ProgressDialog pd = ProgressDialog.show(pak.this, 
         "", "Working..", true); 

      new Thread(new Runnable(){ 
      public void run(){ 
       Intent intent = new Intent(); 
       intent.setClassName("sxe.pak", "sxe.pak.List"); 
       startActivity(intent);    
       pd.dismiss(); 
       } 
      }).start(); 

      } 
    }); 

THX

उत्तर

8

आप प्रगति अपने 2 गतिविधि की शुरुआत में संवाद नहीं, बल्कि आपके पहले एक दिखाने की जरूरत है। और आपको एक AsyncTask में अपना डेटा डाउनलोड करने की ज़रूरत है।

अधिक जानकारी के लिए यह करने के लिए मेरा उत्तर देखें:

Android SplashScreen

+0

अच्छा जवाब है, लेकिन मैं जब तक न के रूप में धागा यूआई धागा उपयोग करने की आवश्यकता AsyncTask को थ्रेड पसंद करेंगे। – pgsandstrom

+0

हाय mbaird, thx आपके उत्तर के लिए। मुझे AsyncTask को असीमित काम करने की संभावना के बारे में पता है, लेकिन मेरे मामले में यह उपयोग करने योग्य नहीं है (या मुझे नहीं पता) क्योंकि मैं एक नई गतिविधि शुरू करना चाहता हूं। दूसरी गतिविधि की शुरुआत में प्रगति संवाद शुरू करना एक विकल्प नहीं है, मैंने पहले से ही भाग्य के बिना कोशिश की, क्योंकि दूसरी गतिविधि की शुरुआत होने तक पहली गतिविधि दिखाई जाती है। यदि मैं बटन दबाता हूं, तो बटन उसके रंग को बदलता है और फिर प्रक्रिया संवाद दिखाया जाता है जैसे कि मुझे उम्मीद है कि केवल पहिया कताई नहीं है। एकमात्र समस्या है। – Andy

+1

@ एंडी, प्रगति संवाद कताई नहीं है क्योंकि आप यूआई थ्रेड में काम कर रहे हैं। अपने डाउनलोड काम को AsyncTask या केवल थ्रेड या रननेबल के माध्यम से एक अलग थ्रेड पर ले जाएं। दोबारा, यदि आप ऊपर दिए गए उत्तर को देखते हैं, और अपनी दूसरी गतिविधि की ऑनक्रेट() विधि में उस प्रश्न के उत्तर के क्रिएट() विधि में क्या हो रहा है, तो मैं प्रतिलिपि बनाने का प्रयास करता हूं, मैं वादा करता हूं कि यह काम करेगा। –

संबंधित मुद्दे