我正在尝试使用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中,backround函数中的do得到了 - String ... path。
那么为了解决这个错误,我可以更改它?
感谢您提供任何帮助
答案 0 :(得分:1)
当你使用这样的for循环时,编译器需要一个数组(或者你可以迭代的另一种类型),而不仅仅是一个字符串。
更改方法声明,以便传递数组
所以这个:
private String httpUploader (String path){
应该是这个
private String httpUploader (String[] paths){
或者你可以传递一个ArrayList