我编写了一个应用程序来使用 box-api 从手机上传文件。我通过以下方式对用户进行身份验证:
Intent intent = new Intent(this, BoxAuthentication.class);
intent.putExtra("API_KEY", Version.BOX_API_KEY);
startActivityForResult(intent, BOX_RESULT);
我通过以下方式获得了返回的令牌:
if (resultCode == BoxAuthentication.AUTH_RESULT_SUCCESS)
{
if(data.getStringExtra("AUTH_TOKEN") != null) {
writeStringPref(Global.boxToken, data.getStringExtra("AUTH_TOKEN"), getApplicationContext());
} else {
toast("An error occured authenticating, please try again"); finish();
}
} else if (resultCode == BoxAuthentication.AUTH_RESULT_FAIL) {
toast("Unable to log into Box"); finish();
}
在我的上传方法中,我通过以下方式调用框:
final Box box = Box.getInstance(Version.BOX_API_KEY);
然后我创建一个文件夹以将文件上传到:
box.createFolder(token, 0l, Global.folderName, true, new CreateFolderListener(){
@Override
public void onIOException(IOException e) {
//HANDLE
}
@Override
public void onComplete(BoxFolder boxFolder, String status) {
//DO STUFF
}
);
我遇到的问题是用户第一次进行身份验证时,我可以使用保存的令牌上传文件没问题。但是,例如,一个小时后,当我调用创建文件夹时,它似乎只是挂起。没有返回任何内容,也没有调用侦听器中的任何方法。
当我将代码更新推送到设备时,这似乎也会发生,它停止工作,唯一的解决方案是重新验证用户身份。阅读文档,令牌似乎不会过期,并且由于没有返回任何内容,因此它似乎不是无效的。
如果这有所不同,我将通过 Intent Service 调用此代码。
任何人都有任何想法可能是什么问题?