package com.example.task;
import android.os.AsyncTask;
import java.lang.ref.WeakReference;
public class LoadDataTask extends AsyncTask<Void, Void, String>
{
private WeakReference<OnLoadDataListener> mOnLoadDataListener;
public interface OnLoadDataListener
{
void onLoadData();
}
public LoadDataTask(OnLoadDataListener onLoadDataListener)
{
setListener(onLoadDataListener);
}
@Override
protected String doInBackground(Void... params)
{
try
{
// TODO: do something
Thread.sleep(2000);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result)
{
if(isCancelled()) return;
OnLoadDataListener listener = mOnLoadDataListener.get();
if(listener != null)
{
listener.onLoadData();
}
}
public void setListener(OnLoadDataListener onLoadDataListener)
{
mOnLoadDataListener = new WeakReference<>(onLoadDataListener);
}
}