我正嘗試在新線程中顯示敬酒。我研究了它,顯然我需要在UI線程中運行敬酒。我需要這個新線程,因爲Android不希望我在主線程中運行HTTPclient。我可以處理一個處理程序,但我的問題是,我無法想出一個方法來獲取MainActivity上下文到我所在的類中。它擴展了SherlockFragment,構造函數可能不會允許它覆蓋。在新線程中敬酒
這是我作爲可運行的時刻
new Thread(new Runnable() {
@Override
public void run() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://www.example.com/API/events/add.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(16);
httppost.getParams().setParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, Boolean.FALSE);
// Adding data
nameValuePairs.add(new BasicNameValuePair("token", "admin"));
nameValuePairs.add(new BasicNameValuePair("eventTitle", title));
nameValuePairs.add(new BasicNameValuePair("categories", Integer.toString(catId)));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
String status = EntityUtils.toString(response.getEntity());
JSONObject jObj = null;
try {
jObj = new JSONObject(status);
} catch (JSONException e) {
Log.e(MainActivity.class.getName(), "Error Parsing Data: " + e.toString());
}
try {
//Want to toast this string here, jObj.getString("status"))
} catch (JSONException e) {
Log.e(MainActivity.class.getName(), "Error Reading Status String: " + e.toString());
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}).start();
爲我可能會做的任何建議?
只需調用getActivity()來獲取上下文。 –