在最后的 onPostExecute 方法中,textview 不會執行它在“hello world”中的停留,而不是使用 json 資料我在頂部初始化它試圖把它放在 for 回圈之外,根本沒有幫助
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
pd.dismiss();
StringBuilder stringBuilder = new StringBuilder();
try {
JSONArray array = new JSONArray(s);
for(int i = 0 ; i<array.length(); i ) {
JSONObject object = array.getJSONObject(i);
String user = object.getString("username");
String address = object.getString("address");
JSONObject object1 = new JSONObject(address);
String city = object1.getString("city");
String geo = object1.getString("geo");
JSONObject jsonObject = new JSONObject(geo);
String lat = jsonObject.getString("let");
stringBuilder.append("username is " user " city is " city " let is " lat "\n");
textView.setText(stringBuilder.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
uj5u.com熱心網友回復:
asyncTask 類在 API 級別 30 中已棄用。 https://developer.android.com/reference/android/os/AsyncTask
我建議您使用此解決方案:
請改用標準的 java.util.concurrent 或 Kotlin 并發實用程式。
ExecutorService exService = Executors.newSingleThreadExecutor();
Handler handler=new Handler(Looper.getMainLooper);
exService.execute(new Runnnable(){
...
// your background works here
//
//if you need change ui use this:
handler.post(new Runnable(){
///change ui
});
});
或者,如果您想使用 AsyncTask 使用處理程式在 mainThread 上運行它:
new Hanndler(Looper.getMainLooper).post(new ...
{
textView.setText(stringBuilder.toString());
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425270.html
