我在实施时遇到问题AsyncTask
。我必须旋转手机才能获取最新信息。下面是我的课:
GamerObject gamer;
….
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ip = "134.188.204.155";
// Set the name of the gamer
gamername = (TextView) findViewById(R.id.gamer_name);
// Set the gamerstatus:
gamerstatus = (TextView) findViewById(R.id.tvgamer_status_msg);
// set the job status
jobstatus = (TextView) findViewById(R.id.tvJob_status_msg);
new Operation().execute();
}
private class Operation extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
gamer= new GamerObject(ip);
gamer.UpdateAllData();
}
@Override
protected void onPostExecute(Void result) {
updateUI();
}
}
private void updateUI() {
gamer.updateAllData();
// Set the name of the gamer
TextView gamername = (TextView) findViewById(R.id.gamer_name );
gamername.setText(gamer.gamername);
gamername = gamer.gamername ;
// Set the gamer status:
…
// set the job status
…
}
在我使用 Intent 刷新界面之前,但现在我想尝试使用AsyncTask
它以使其与 Android 版本 4 兼容。有人知道如何在不旋转手机的情况下更新信息吗?
编辑:
如果我没记错的话,为什么如果有新值我的 UI 没有刷新,那是因为new Operation().execute();
在 onCreate 中只使用一次。如果调用了 onCreate ,将执行 AsyncTask ,这意味着每次我旋转手机时,它都会转到 onCreate 。任何人都知道如何保持 AsyncTask 执行?