मैं अपने एंड्रॉइड 3.0 ऐप के साथ NetworkOnMainThreadException में चलाता हूं। समाधान के लिए खोज रहे हुए मुझे this मिला, लेकिन अगर मैं इसे सही ढंग से समझता हूं, तो डिफ़ॉल्ट सेटिंग यह होगी कि सख्त मोड बंद है।एंड्रॉइड हनीकॉम्ब: नेटवर्कऑनमेन थ्रेड अपवाद भी AsyncTask और कोई सख्त मोड का उपयोग करते समय?
इसके अलावा, मेरे सभी नेटवर्क का उपयोग AsyncTask
में है, इसलिए मुझे इस अपवाद में बिंदु दिखाई नहीं देता है।
तो, मैं अब काफी बेताब हूँ कि मैं क्या इसे रोकने के लिए क्या करना चाहिए ...
सधन्यवाद, जेलीफ़िश
संपादित करें:
This blog entry का कहना है कि AsyncTask पर्याप्त होना चाहिए , लेकिन कम से कम StrictMode बिंदु स्पष्ट करता है।
समाधान:
मैं StrictMode बंद कर दिया है (इसकी शायद बेहतर कुछ सेटिंग्स रखने के लिए, लेकिन मैं ... परेशान नहीं किया जा सकता है):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
उसके बाद, मैं चला "java.lang.RuntimeException में: यह थ्रेड HTTP अनुरोधों को रोकता है", लेकिन इस here के लिए एक समाधान मिला। मैं थोड़ा उलझन में हूँ, हालांकि, के रूप में AndroidHttpClient
ठीक काम किया जब मैं अपने एंड्रॉयड 2.0 + अनुप्रयोग में इसका इस्तेमाल किया ...
समाधान, PART2
जैसा सामने आया, AsyncTask का उपयोग कर एक अच्छा विचार था लेकिन done wrong पर बहुत बेकार ... तो सख्त मोड की प्रतिक्रिया में कुछ भी गलत नहीं था। सुनना चाहिए था, एर? ;)
अभी भी यह जानना अच्छा है कि यह डिफ़ॉल्ट रूप से हनीकॉम पर सक्रिय है।
धन्यवाद ... इस नए एपीआई मुझे पागल गाड़ी चला रहा है। ^^ मुझे यह नहीं मिलता है कि क्यों AsyncTask मुख्य धागे से बाहर नहीं माना जाता है ... – jellyfish
मैं सहमत हूं। Thread.run() के साथ क्या गलत है? उन्हें इसकी आवश्यकता क्यों है? – Chloe