getApplicationContext в классе AsyncTask?
У меня есть пара частных методов AsyncTask, которые я хотел бы разбить на публичные внешние классы. В моем приложении есть открытый класс, расширяющий приложение, которое содержит некоторые общие подпрограммы, к которым я хочу получить доступ из разных частей моего приложения. Однако, когда я отключаю класс AsyncTask, я больше не могу вызывать getApplicationContext (), чтобы получить ссылку на мою библиотеку приложений (теперь класс ничего не наследует от Activity). getBaseContext () также будет иметь проблемы. Должен ли я передавать контекст в AsyncTask, когда он создается и создается оттуда? Не уверен, было ли это безопасно или нет.
import java.util.ArrayList;
import android.os.AsyncTask;
public class DlTask extends AsyncTask
{
long totalbytes = 0;
long totalread = 0;
ArrayList <String> data;
@Override
protected void onPreExecute ()
{
AppLib lib = (AppLib) getApplicationContext();
lib.saveStatusText ("Contacting " + lib.getServerAddress () + ":" + lib.getServerPort () + "...");
super.onPreExecute ();
}
@Override
protected Object doInBackground (Object... params)
{
data = lib.sendCommand (CMD_LIST);
return true;
}
@Override
protected void onPostExecute (Object result)
{
if (data != null)
{
lib.saveStatusText (data.size () + " files found");
}
else
{
Log.d (TAG, "data is null");
Toast.makeText (getBaseContext(), msg, Toast.LENGTH_SHORT).show ();
}
super.onPostExecute(result);
}
}