package com.example.asynctaskloader;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.support.v4.content.AsyncTaskLoader;
public class StringsDownloadTaskLoader extends AsyncTaskLoader<List<String>> {
static int idx = 0;
public StringsDownloadTaskLoader(Context context) {
super(context);
}
@Override
public List<String> loadInBackground() {
List<String> strings = new ArrayList<String>();
idx++;
try {
Thread.sleep(500);
String str = String.format("%d", idx);
strings.add(str);
} catch (InterruptedException e) {
e.printStackTrace();
}
return strings;
}
}
//출처: http://blog.nkzn.net/entry/20120113/1326478800
package com.example.asynctaskloader;
import java.util.List;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends FragmentActivity implements LoaderCallbacks<List<String>>{
ArrayAdapter<String> mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView)findViewById(R.id.listview);
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
listView.setAdapter(mAdapter);
Bundle args = new Bundle(1);
getSupportLoaderManager().initLoader(0, args, this);
}
@Override
public Loader<List<String>> onCreateLoader(int id, Bundle args) {
StringsDownloadTaskLoader loader = new StringsDownloadTaskLoader(getApplication());
loader.forceLoad();
return loader;
}
@Override
public void onLoadFinished(Loader<List<String>> loader, List<String> data) {
for(String s: data){
mAdapter.add(s);
}
mAdapter.notifyDataSetChanged();
Bundle bundle = new Bundle (1);
getSupportLoaderManager (). restartLoader (0, bundle, this);
//mhandler.sendEmptyMessageDelayed(0, 1000);
}
@Override
public void onLoaderReset(Loader<List<String>> loader) {
// TODO Auto-generated method stub
}
public Handler mhandler = new Handler(){ // 핸들러 처리부분
public void handleMessage(Message msg){ // 메시지를 받는부분
};
};
}
handler로 일정시간마다 재호출하고 싶은데 잘 안되서..
onLoadFinished함수에서 다시 호출하게 했는데..;;;
어떻게 해야 합니까?