android - How to call a method in activity class from a seperate asynctask class? -
यह मेरी गतिविधि वर्ग है
import android.app.activity; Importroid.os.Bundle; आयात करें android.view.View; आयात करें android.widget.Button; आयात करें android.widget.ProgressBar; सार्वजनिक वर्ग MyActivity गतिविधि का विस्तार (प्रगति बरकरार pb_show प्रगति; बटन btn_start डाउनलोड हो रहा है; सूचनाबिल्डर mNotificationBuilder = नया अधिसूचनाबिल्डर (यह); @ ओवरराइड संरक्षित शून्य को क्रिएट (बंडल सहेजा गया इन्स्टैंसस्टेट) {सुपर.नक्रेट (सहेजे गए इन्स्टेंसस्टेट); setContentView (R.layout.activity_my); Pb_show प्रगति = (प्रगतिबार) खोजव्यूबीआईआईडी (आर.आई.डीपीडी_शो प्रगति); pb_showprogress.setVisibility (View.GONE); pb_showprogress.setMax (100); बीटीएन_टार्टडाउलोडिंग = (बटन) ढूंढिए वीवीबीआईआईडी (आर.ड.बीटीएन_स्टार्टडाउनलोड); बीटीएन_टार्टडाउलोडिंग.ऑनलाइनक्लिकलिस्ट (नया देखें .ऑनक्लिकलिस्ट () {@ ओवरराइड पब्लिक वाइड ऑनक्लिक क्लिक करें (देखें वी) {pb_showprogress.setVisibility (देखें। विजुअल); नया डाउनलोड (getApplicationContext ())। निष्पादित करें ();}}); } सार्वजनिक शून्य सेटऑनप्रगवरीअपडेट (पूर्ण प्रतिशत पूर्ण) {pb_showprogress.setProgress (प्रतिशत पूर्ण); }} और यहां मेरा asynctask वर्ग है
import android.app.ProgressDialog; आयात करें android.content.Context; android.os.AsyncTask आयात करें; आयात करें android.os. पर्यावरण; आयात करें android.util.log; आयात करें android.widget.Toast; आयात करें java.io.File; आयात java.io.FileNotFoundException; आयात करें java.io.FileOutputStream; आयात java.io.IOException; Import java.io.InputStream; आयात करें java.net.HttpURLConnection; आयात करें java.net.MalformedURLException; Import java.net.URL; सार्वजनिक श्रेणी डाउनलोड में AsyncTask और lt; पूर्णांक, पूर्णांक, स्ट्रिंग & gt; {सूचनाबिल्डर mNotificationBuilder; माईएक्टिवटी एमएमएएक्टिविटी; संदर्भ संदर्भ; स्ट्रिंग एमURL [] = नई स्ट्रिंग [] {यूआरएल के // सरणी}; सार्वजनिक डाउनलोड (संदर्भ संदर्भ) {this.context = context; } संरक्षित शून्य पर PreExecute () {Toast.makeText (संदर्भ, "यहाँ", टोस्ट। एलएनएनजीएचआईएचओआरएआरटी)। दिखाएं (); } @ ओवरराइड संरक्षित स्ट्रिंग doInBackground (पूर्णांक ... पैरामीटर) {try (for int i = 0; i & lt; mURL.length; i ++) {URL url = नया URL (mURL [i]); HttpURL कनेक्शन कनेक्शन = (HttpURL कनेक्शन) url.openConnection (); connection.connect (); Int lengthOfFile = connection.getContentLength (); स्ट्रिंग पथ = पर्यावरण .getExternalStorage डायरेक्टरी () + "/ डाउनलोड"; फ़ाइल फ़ाइल = नया फ़ाइल (पथ); file.mkdir (); फ़ाइल को स्टोर करने के लिए एक्सटेंशन देना आवश्यक है स्ट्रिंग फ़ाइल नाम = "छविटॉउडलोड" + i + ".png"; फ़ाइल आउटपुट फ़ाइल = नया फ़ाइल (फ़ाइल, फ़ाइल नाम); FileOutputStream फ़ाइलऑप्टपुटस्ट्रीम = नया FileOutputStream (आउटपुटफ़ाइल); InputStream इनपुटस्ट्रीम = connection.getInputStream (); बाइट [] बफर = नया बाइट [1024]; Int लंबाई = 0; पूर्णांक = 0; जबकि ((लंबाई = inputstream.read (बफर))! = -1) {fileOutputStream.write (बफर, 0, लंबाई); कुल + = लंबाई; प्रकाशन प्रगति ((पूर्णांक) (कुल * 100 / लंबाईऑफ़फ़ाइल)); } FileOutputStream.close (); inputStream.close (); }} पकड़ (Malformedlexception e) {e.printStackTrace (); } पकड़ (FileNotFoundException ई) {e.printStackTrace (); } पकड़ (IOException ई) {e.printStackTrace (); } वापसी नल; } संरक्षित शून्य पदोन्नति अद्यतन (पूर्णांक ... प्रगति) {// यह विधि UI थ्रेड पर चलता है, यह पृष्ठभूमि थ्रेड से प्रगति अपडेट प्राप्त करता है और उन्हें स्टेटस बार mNotificationbuilder.progressUpdate (प्रगति [0]) में प्रकाशित करता है; mMyActivity.setOnProgressUpdate (प्रगति [0]); } @Override सुरक्षित शून्य पर PostExecute (स्ट्रिंग परिणाम) {// कार्य पूर्ण है, इसके बारे में स्टेटस बार बताओ mNotificationBuilder.completed (); टोस्ट। मेक टेक्स्ट (संदर्भ, "पूर्ण डाउनलोड", टोस्ट। एलएनजीएचआईएचओआरएआरटी)। दिखाएं (); }} अब asynctask विधि में मैं प्रगति [0] myactivity को भेजना चाहूंगा जहां वह इसे स्वीकार करता है। लेकिन निश्चित रूप से मैं ऐसा करने में सक्षम नहीं हूं। कृपया अग्रिम धन्यवाद धन्यवाद
आप अपने संदर्भ को ((MyActivity) this.context जैसे पार्स कर सकते हैं) .yourMethodInActivity (प्रगति [0])। इसे अपने पर PostExecute में करने के लिए मत भूलना
Comments
Post a Comment