데이터를 새로 고치려면 10 초 후에 AsyncTask를 다시 시작하려고합니다. 하지만 몇 가지 코드가 있지만 AsyncTask를 실행하는 데 몇 초가 지나면 OutOfMemory 예외가 throw됩니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까? 여기 AsyncTask를 재실행하여 데이터를 새로 고치려면 OutOfMemoryException
내 코드입니다 :AsyncTask를
private class LoadQueueTask extends AsyncTask<Void, Void, Queue>
{
@Override
protected Queue doInBackground(Void... arg0) {
Model model = Model.getInstance();
return model.getQueue();
}
@Override
protected void onPostExecute(Queue result) {
super.onPostExecute(result);
adapter = new QueueAdapter(getSherlockActivity(), R.layout.item_queue, result.getSlots());
listview.setAdapter(adapter);
listview.setEmptyView(empty);
if(adapter.getCount() != 0)
{
callAsynchronousTask();
}
}
}
TIMER
public void callAsynchronousTask() {
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
new LoadQueueTask().execute();
} catch (Exception e) {
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 10000);
}
어댑터
012onCreate
방법에서, 예를 들어,
if(adapter.getCount() != 0)
{
callAsynchronousTask();
}
전화 코드의 일부 한 번에 callAsynchronousTask
방법 :
당신이보고 싶다면 나는 게시 할 수 있습니다. – Timmeeh93
좋아, 그것을 공유 할 수 있지만 그것은 또한 무한 루프가 아닙니다; if (adapter.getCount()! = 0) { callAsynchronousTask(); } – Devrim
긴 루프를 알고 있지만 30000의 타이머도 있습니다 – Timmeeh93