在Android開(kāi)發(fā)中,通常會(huì)使用異步加載來(lái)加載大量數(shù)據(jù)或執(zhí)行耗時(shí)操作,以避免阻塞主線程導(dǎo)致界面卡頓。同時(shí),在加載數(shù)據(jù)完成后,我們需要將數(shù)據(jù)展示在界面上,這時(shí)就需要使用setContentView方法來(lái)設(shè)置布局文件。
異步加載通常使用AsyncTask類來(lái)實(shí)現(xiàn),該類可以在后臺(tái)線程中執(zhí)行耗時(shí)操作,并在主線程中更新UI。在AsyncTask的doInBackground方法中執(zhí)行耗時(shí)操作,然后在onPostExecute方法中更新UI。
在Activity中,通常會(huì)在onCreate方法中調(diào)用setContentView方法來(lái)設(shè)置界面布局,并在onPostExecute方法中更新UI。下面是一個(gè)簡(jiǎn)單的示例代碼:
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.text_view);
new LoadDataTask().execute();
}
private class LoadDataTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
// 模擬耗時(shí)操作
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello, AsyncTask!";
}
@Override
protected void onPostExecute(String result) {
mTextView.setText(result);
}
}
}
在這個(gè)示例中,我們?cè)趏nCreate方法中調(diào)用setContentView方法設(shè)置了布局文件activity_main.xml,并在LoadDataTask中執(zhí)行了一個(gè)耗時(shí)操作,然后在onPostExecute方法中更新了界面上的TextView。這樣就實(shí)現(xiàn)了異步加載數(shù)據(jù)并展示在界面上的功能。