Android - 将(字符串...路径)从asynctask更改为位于服务中的函数

时间:2014-03-23 14:24:27

标签: java android android-asynctask

我正在尝试使用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。

那么为了解决这个错误,我可以更改它?

感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

当你使用这样的for循环时,编译器需要一个数组(或者你可以迭代的另一种类型),而不仅仅是一个字符串。

更改方法声明,以便传递数组

所以这个:

private String httpUploader (String path){

应该是这个

private String httpUploader (String[] paths){

或者你可以传递一个ArrayList