是否可以将文件传递给Android中的AsyncTask?

Eth*_*len 0 java android android-asynctask

是否可以将文件传递给AsyncTask?像这样?

public class UploadImagesTask extends AsyncTask<String, String, File> {
    @Override
    protected File doInBackground(String... params) {
Run Code Online (Sandbox Code Playgroud)

这样做我会访问该文件吗?

params[2]
Run Code Online (Sandbox Code Playgroud)

Arg*_*yle 6

不是那样的,没有.

如果你想传入a String和a File,你需要做这样的事情,相信自己不要搞砸参数.

public class DoThing extends AsyncTask<Object, String, File> {
    @Override
    protected File doInBackground(Object... params) {
        String stringy = (String) params[0];
        File file = (File) params[1];
        // do hard work
        return file;
    }
}
Run Code Online (Sandbox Code Playgroud)

因为所有的参数都扩展了Object,当你调用它时,它看起来像这样:

String aString = stringGettingMethod();
File aFile = fileGettingMethod();
new DoThing().execute(aString, aFile);
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过构造函数参数传递任何您想要的内容.