我试图采取asynctask代码,并将其转换为一个函数,将运行在一个服务类。
asynctask代码像这样开始-
public class HttpUploader extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... path) {
String outPut = null;
for (String sdPath : path) {
Bitmap bitmapOrg = BitmapFactory.decodeFile(sdPath);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
//rest of the code
现在我试着把它转换成一个函数-像这样-
private String httpUploader (String path){
String outPut = null;
for (String sdPath : path) {
Bitmap bitmapOrg = BitmapFactory.decodeFile(sdPath);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
上面的代码显示了路径出错,在-
行 for (String sdPath : path)
当站在上面时-它说-"只能迭代数组或java.lang的实例…"
所以我想这个问题是因为在asynctask的后台函数做得到-字符串…路径。
那么我可以用什么改变它来消除这个错误呢?
感谢您的帮助
当你使用这样的for循环时,编译器需要一个数组(或其他可以迭代的类型),而不仅仅是一个字符串。
改变你的方法声明,让你传递一个数组来代替
:
private String httpUploader (String path){
应该是这个
private String httpUploader (String[] paths){
或者你可以传递一个ArrayList