gpt4 book ai didi

android - AsyncTask 类中的 getApplicationContext?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:37 28 4
gpt4 key购买 nike

我有几个私有(private) AsyncTask 方法,我想将它们分解为公共(public)外部类。在我的应用程序中,我有一个扩展 Application 的公共(public)类,它包含一些我想从应用程序的不同部分访问的共享例程。但是,当我分解 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);
}

}

最佳答案

Should I be passing a context into the AsyncTask when it gets instantiated and build from there?

您别无选择,因为您将无法通过任何其他方式获得 Context

关于android - AsyncTask 类中的 getApplicationContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15278840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com