try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(wyvernBones); //"http://forums.zybez.net/runescape-2007-prices/3104-wyvern-bones"
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
fetched = false;
progBox.show();
while (!fetched) {
line = br.readLine();
if (line.contains("Average Sell Offer")) {
Toast.makeText(this, line, Toast.LENGTH_LONG).show();
progBox.dismiss();
fetched = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
Выше первого подхода, который я использовал.Приложение для Android не будет запускать код внутри блока try
public void getItem() throws Exception
{
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(wyvernBones); //"http://forums.zybez.net/runescape-2007-prices/3104-wyvern-bones"
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
fetched = false;
progBox.show();
while (!fetched) {
line = br.readLine();
if (line.contains("Average Sell Offer")) {
Toast.makeText(this, line, Toast.LENGTH_LONG).show();
progBox.dismiss();
fetched = true;
}
}
}
После использования следующего кода внутри блока catch catch безрезультатно, вместо этого я помещаю его в метод. Во время отладки я понял, что код внутри блока try/catch даже не обрабатывается/не запускается (?). Что я сделал не так?
e: первый образец был предпринят в методе onCreate, второй образец был вызван при нажатии кнопки.
Весь код;
public class MainActivity extends ActionBarActivity implements OnClickListener{
Button btn1;
ProgressDialog progBox;
Boolean fetched;
String line;
URL url;
String wyvernBones = "http://forums.zybez.net/runescape-2007-prices/3104-wyvern-bones";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progBox = new ProgressDialog(this);
progBox.setIndeterminate(true);
progBox.setTitle("Fetching Data..");
btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(this);
try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(wyvernBones); //"http://forums.zybez.net/runescape-2007-prices/3104-wyvern-bones"
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
fetched = false;
progBox.show();
while (!fetched) {
line = br.readLine();
if (line.contains("Average Sell Offer")) {
Toast.makeText(this, line, Toast.LENGTH_LONG).show();
progBox.dismiss();
fetched = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Где вы использовали этот код? – Biu
Извините, в методе onCreate. Ill обновить соответственно. – Brian
это 'while (! Fetched) {' - бесконечный цикл (на самом деле это не потому, что он разбит неизбежным NPE) – njzk2