Мой экран, когда я нажимаю кнопку, медленно загружается (из-за загрузки изображений, файлы изображений на самом деле очень маленькие), поэтому я попытался использовать AsyncTask, чтобы помочь. Программа работает, но я переместил загрузку изображения в AsyncTask, чтобы увидеть, будет ли она загружаться быстрее, и приложение будет сбой каждый раз. Я предполагаю, что это связано с тем, как я его настроил. Как я могу это исправить? Лучше ли использовать поток runnable? Благодаря!Как настроить параметры doInBackground в моей AsyncTask?
Класс:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// no title
requestWindowFeature(Window.FEATURE_NO_TITLE);
// set full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// inflate listview
setContentView(R.layout.gmg);
**new Load.execute(); // executes AsyncTask**
...
gmgListView = (ListView) findViewById(R.id.gmg_list2);
GMGListViewAdapter adapter = new GMGListViewAdapter(this,
R.layout.gmg_list_row, rowItems);
gmgListView.setAdapter(adapter);
gmgListView.setOnItemClickListener(this);
}
AsyncTask:
private class Load extends AsyncTask<String, Void, Void> {
private ProgressDialog Dialog = new ProgressDialog(GMGListViewActivity.this);
@Override
protected void onPreExecute() {
Dialog.setMessage("Doing something...");
Dialog.show();
}
@Override
protected Void doInBackground(String... params) {
SparseArray<Spanned> gmgText = null;
Integer[] right = null;
SparseArray<Drawable> appIcon = null;
try {
gmgText = ParseContent.queryGMGText();
right = ParseContent.queryGMGRight();
appIcon = ParseContent.queryDrawable();
} catch (ParseException e) {
e.printStackTrace();
}
// Inflate GMG's rows
rowItems = new ArrayList<GMGRowItem>();
for (int i = 0; i < gmgText.size(); i++) {
GMGRowItem item = new GMGRowItem(appIcon.get(i), gmgText.get(i), right[i]);
rowItems.add(item);
}
return null;
}
protected void onPostExecute(Void unused) {
Dialog.dismiss();
}
}
не могли бы вы отправить логарифм вместе с номером строки, чтобы мы могли узнать причину аварии? –
Какая у вас ошибка? – Kunu
добавить rowItems.add (item); в onPostMethod doinBackground не добавляя you'r строку добавить это в onpost() –