После выполнения некоторых методов с потоком потока необходимо определить, является ли выполнение успешным.
public void run () {}
Возвратное значение метода run () пусто, что мне делать?
Решение:
Код:
пакет com.example.thread; импорт java.io.ioexception; import java.io.inputstream; импорт java.net.httpurlconnection; импорт java.net.malformedurlexception; импорт java.net.url; import.Util.Concurrent.Callable; импорт android.Util.Log; класс mythread1 реализует Callable <string> {private Static Final String Tag = "xxxyyy"; Частный строковый телефон; Приватное название строки; public mythread1 (string name, string phone) {this.name = name; this.phone = телефон; } // public mythRead1 (name строка, строковое телефон) {// super (name); // this.phone = phone; //} // public void run () {// log.i (Tag, thread.currentThread (). getName () + "...... start"); // String newpath = "http://www.dianping.com/ajax/json/account/reg/mobile/send?m=" + phone + "& flow = t & callback = dp._jsonprequest._5"; // stringbuilder strbui = new Stringbuilder (newpath); Url (strbui.tostring ()); // httpurlconnection con = (httpurlconnection) url.openconcenection (); // con.addrequestproperty ("content-type", "text/html; charset = utf-8"); "Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (khtml, как гекко) Chrome/38.0.2125.104 Safari/537.36"); // con.addrequestproperty ("cookie", "_hc.v =/" /// "0ffcdf91-a4d6-4b08-8800-3d59d2e2fe45.1413899372 ///"/"; abtest =/" 48,124 // | 52,133 // | 47,122//| 44,106 // | 45,133 // | 47,122//| __utma = 1.29319792.1412090870.1413609669.1413645970.5; _tr.u = 7dhy0yfhd9ry065f; 13.t = 17datea7d2a7d8e46d84bf12a74627b72; _hc.V =/"///" 1BDAD871-405E-46E3-97D6-46571AD48E14.1413897928 /// "/"; JsessionId = 891671fc6b450418dd6e0611a3e4cf48 "); // con.addrequestproperty (" Реферат "," http://t.dianping.com/register") ;///setConnecttimeout (5000); (con.getResponseCode () == 200) {// inputStream inputstr = con.getInputStream (); // string info = new String (streamTool.read (inputStr), "utf-8"); // log.i (Tag, thread.currentThread (). getName () + info); //} //} catchembletRexcept Автопогенерированный блок улова // e.printstacktrace (); //} catch (ioexception e) {// // // todo автоматически сгенерированный блок // e.printstacktrace (); //} catch (ioexception e) {// // todo AutoGenceed Catch/E.printStStc TODO Auto Generated Catch Block // e.printstacktrace (); //} // //} @override public String call () Throws Exception {log.i (Tag, thread.currentThread (). GetName () + "...... start"); String newpath = "http://www.dianping.com/ajax/json/account/reg/mobile/send?m=" + phone + "& flow = t & callback = dp._jsonprequest._5"; StringBuilder strbui = new StringBuilder (newpath); try {url url = new url (strbui.tostring ()); Httpurlconnection con = (httpurlconnection) url.openconcenection (); con.addrequestproperty ("content-type", "text/html; charset = utf-8"); con.addrequestproperty («Пользовательский агент», Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (khtml, как гекко) Chrome/38.0.2125.104 Safari/537,36 "); con.addrequestproperty ("cookie", "_hc.v =/" /// "0ffcdf91-a4d6-4b08-8800-3d59d2e2fe45.1413899372 ///"/"; abtest =/"48,124 // | 52,133 // | 47,122 // | 44,106 // | 45,115/"; __utmz = 1,1413645970.5.2. T_RCT = 2172824 | 2171729 | 6457678; 13.TS = CD3BD6495620E2A204912C4BDFD43220; _hc.V =/"//" 1BDAD871-405E-46E3-97D6-46571AD48E14.1413897928 /// "/"; JSessionId = 891671FC6B450418DD6E0611A3E4CF48 "); con.addrequestproperty («Реферат», «http://t.dianpance.com/register»); con.setConnecttimeout (5000); con.setrequestmethod ("Get"); float x = 3.4f; if (con.getResponsecode () == 200) {inputStream inputstr = con.getInputStream (); String info = new String (StreamTool.read (inputStr), "UTF-8"); Log.i (Tag, thread.currentThread (). GetName () + info); if (info.contains ("200")) return "200"; }} catch (malformedurlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (Exception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } // TODO Автогенерированный метод return return "404"; }} Обработать возвращаемое значение
Executorservice exec = executors.newcachedthreadpool (); Arraylist <future <String >> Results = new ArrayList <Future <String >> (); для (int i = 0; i <num; i ++) results.add (exec.submit (selectThread (telnumber))); для (будущее <string> fs: результаты) попробуйте {if (fs.get (). equals ("200")) успех ++; } catch (прерванная экспрессия e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (executionException e) {// todo автоматически сгенерированный блок e.printstacktrace (); } вернуть успех;Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.