-1

Android Parse API を使用してファイルをアップロードするコードを開発しました。

私のコードは以下の通りです:

String name = "" + IMGname;
ParseFile file = new ParseFile(name.toLowerCase(), byteArray);
String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT);

ParseObject gameScore = new ParseObject("UserDetails_New");
gameScore.put("userName", "" + userName.getText().toString().toLowerCase());

gameScore.put("userPhotoProfile", file);

gameScore.saveInBackground();

私の問題は次のとおりです。上記のコードはほとんどの場合機能しますが、毎回ではありません。ファイルをアップロードする場合とアップロードしない場合があります。なぜこれが起こるのか教えてもらえますか?

4

2 に答える 2

1
gameScore.saveInBackground();

これの代わりに、結果のコールバックをリッスンしてみてください。ファイル保存プロセスで何が問題になっているのかを把握できるようにします。

gameScore.saveInBackground(new SaveCallback() {

    @Override
    public void done(ParseException arg0) {
        if( arg0 != null )
        {
            //Handle Error here
        }
    }
});

saveEventuallyメソッドを使用することもできます。このメソッドの利点は、ネットワーク接続が回復するたびにオブジェクトの更新を試行することと、保存プロセスの合間にアプリケーションを閉じる場合に、Parse フレームワークがこれを保持し、いつでもオブジェクトを保存しようとすることです。ユーザーはアプリケーションに戻りました。

于 2013-05-11T06:20:27.397 に答える
1

私はこれを使用して解決しました:file.saveInBackground();

これは、以下のコードを使用して最初にファイルをアップロードする必要があることを意味します。

byte[] data = "Working at Parse is great!".getBytes();
ParseFile file = new ParseFile("resume.txt", data);
file.saveInBackground();

保存が完了したら、以下の手順を実行します

ParseObject jobApplication = new ParseObject("JobApplication");
jobApplication.put("applicantName", "Joe Smith");
jobApplication.put("applicantResumeFile", file);
jobApplication.saveInBackground();

だから、私の答えは:

String name = "" + IMGname;
                ParseFile file = new ParseFile(name.toLowerCase(), byteArray);
                file.saveInBackground();

                ParseObject gameScore = new ParseObject("UserDetails_New");
                gameScore.put("userName", "" + userName.getText().toString().toLowerCase());

                gameScore.put("userPhotoProfile", file);

                gameScore.saveInBackground();
于 2013-05-11T07:26:00.967 に答える