पृष्ठभूमि कार्यकर्ता जो इस प्रक्रिया को पृष्ठभूमि में काम करता है इसके बारे में किसी भी जानकारी के आवेदन के दौरान बिना किसी लापरवाही के कारण आपको धन्यवाद दिया जाएगा।
एक एंड्रॉइड ऐप के लिए AsyncTask का उपयोग करें
निजी क्लास DownloadFilesTask AsyncTask & lt; यूआरएल, पूर्णांक, लांग & gt; {सुरक्षित लंबे doInBackground (यूआरएल ... यूआरएल) {int count = urls.length; लंबे समय का आकार = 0; के लिए (int i = 0; i & lt; count; i ++) {totalSize + = Downloader.downloadFile (यूआरएल [i]); प्रकाशन प्रगति ((इंट) ((/ (फ्लोट) गिनती) * 100)); // बचने के बाद बचें यदि रद्द करें () कहा जाता है तो (रद्द हो गया है) तोड़; } कुल वापसी; } प्रगति अद्यतन पर सुरक्षित शून्य (पूर्णांक प्रगति) {सेट प्रगति प्रतिमान (प्रगति [0]); } संरक्षित void onPostExecute (लंबे परिणाम) {showDialog ("डाउनलोड" + परिणाम + "बाइट्स"); }} जावा स्विंग एप्लिकेशन के लिए
एक जावा स्विंग एप्लिकेशन के लिए java.util.concurrent.ExecutorService या का उपयोग करें Javax.swing.SwingWorker । आप क्या करना चाहते हैं पर निर्भर करता है: यदि आप SwingWorker का उपयोग कर रहे हैं तो इवेंट डिस्पैच थ्रेड पर कार्यप्रणाली को < कोड> doInBackground विधि समाप्त हो गई है। यदि आप निष्पादक सेवा का उपयोग करते हैं तो आपको ध्यान रखना चाहिए कि इवेंट डिस्पैच थ्रेड पर यूआई संबंधित कार्य किया जाता है। जैसे SwingUtilities.invokeLater । निष्पादक सेवा उदाहरण के साथ javadoc से < पूर्व> वर्ग नेटवर्कसेवा लागू करता है Runnable {निजी फाइनल सर्वर सर्वर सर्वर सॉकेट; निजी अंतिम निष्पादक सेवा पूल; सार्वजनिक नेटवर्क सेवा (इंट पोर्ट, इंट पूल साइज़) IOException फेंकता है {serverSocket = new ServerSocket (पोर्ट); पूल = निष्पादक। एनवेफिक्सथाथपूल (पूल आकार); } सार्वजनिक शून्य चलाने () {// (; ;;) {pool.execute के लिए सेवा का प्रयास करें (नया हैंडलर (serverSocket.accept ())); }} पकड़ (IOException पूर्व) {pool.shutdown (); }}} वर्ग हैंडलर चलने योग्य {निजी फाइनल सॉकेट सॉकेट लागू करता है; हैंडलर (सॉकेट सॉकेट) {this.socket = socket; } सार्वजनिक शून्य रन () {// सॉकेट पर पढ़ने और सेवा अनुरोध}}
स्विंगवॉकर < स्विंग वर्कर कार्यकर्ता = नया घुमावदार & lt; छविइकन [], शून्य & gt; () {@ ओवरराइड पब्लिक इमेज आईकॉन [] doInBackground () {अंतिम इमेज़न [] innerImgs = नया ImageIcon [nimgs]; के लिए (इंट आई = 0; आई & lt; nimgs; i ++) {आंतरिक इमेज [आई] = लोडमेज (आई + 1); } वापसी के भीतर आईएमजी; } @ ओवरराइड सार्वजनिक शून्य किया () {// "चित्र लोड करना" लेबल निकालें animator.removeAll (); लूपलॉट = -1; कोशिश {imgs = get (); } पकड़ (अवरुद्ध अपवाद अनदेखी) {} पकड़ (java.util.concurrent.ExecutionException ई) {स्ट्रिंग क्यों = नल; फेंकने योग्य कारण = e.get का कारण (); अगर (कारण! = नल) {क्यों = कारण.गेट मेसेज (); } और (क्यों? E.getMessage (); } System.err.println ("फ़ाइल पुनर्प्राप्त करने में त्रुटि:" + क्यों); }
No comments:
Post a Comment