我已经写了一个应用程序来使用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();
}在我的upload方法中,我通过以下方式调用box:
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调用此代码,如果这会有所不同的话。
有没有人知道问题是什么?
发布于 2013-01-02 06:04:28
我自己解决了这个问题..我从一个Intent Service调用box,它不在主线程上,因此,当调用box api时,我实质上是从后台线程调用后台线程。我不知道为什么有时会这样,而不是其他时候,但使用一个处理程序(主线程)并通过调用box-api似乎已经解决了这个问题。
https://stackoverflow.com/questions/14110158
复制相似问题