簡體   English   中英

是否存儲給定ParseUser的所有ParseFiles?

[英]Storing all ParseFiles for a given ParseUser?

我是Parse的新手,想知道是否可以將給定ParseUser的所有ParseFiles(在本例中為圖像)存儲到類似ArrayList的方法中?

這是我的代碼:

public ArrayList<ParseFile> getFiles() {

    ArrayList<ParseFile> files = new ArrayList<ParseFile>();

    //mUser is the current ParseUser
    ParseQuery<ParseObject> query = ParseQuery.getQuery(mUser.getUsername());
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> fileList, ParseException e) {
            if (e == null) {
                Log.d("FILES", "Retrieved " + fileList.size() + " files");

                for(ParseObject ch:fileList) {


                    image = ch.getParseFile("image");
                    files.add(image);

                        @Override
                        public void done(byte[] arg0, ParseException arg1) {
                            //nothing to do here                    
                        }
                    });

                }
                Log.i("TAG", ": "  + files.size());


            } else {
                Log.d("FILES", "Error: " + e.getMessage());
            }
        }

    });
    Log.i("DONE", ": " + files.size());

    return files;
}

當我進入done()時,將添加該特定用戶擁有的3張圖像,然后得到大小為3的ArrayList。 當我不在done()之外時,ArrayList的大小會返回0,我認為這是因為它是在查詢之外被引用的。 並且確實可以返回一個空的ArrayList(不太令人震驚)。

我覺得這應該是一個簡單的解決方案,但我似乎無法弄清楚。 我試圖做一個靜態的ArrayList變量,但這似乎也不起作用。 關於如何返回所需的ArrayList的任何想法嗎?

我相信問題在於,外部線程在后台進程完成之前仍然繼續。 換一種說法..

 1. query.findInBackground(....);
 2. Log.i("DONE" ....);

.. 2.在1.完成之前執行。 解析“ inBackground”的全部要點是它完成了線程不依賴的操作。 如果您需要對List進行操作,則應在與后台線程相同的線程中進行操作,或者不要在“ inBackground”中進行操作。

這樣嘗試

ParseQuery<ParseObject> query = ParseQuery.getQuery(mUser.getUsername());
List<ParseObject>imageList=query.find();

try {

Arraylist<ParseFile> files = new  Arraylist<ParseFile>files();

 ParseFile image;

      for(int i =0;i<imageList.size();i++)

 {

          image = imageList.get(i).getParseFile("image");
          files.add(image);

 } 

}

catch()
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM