Android-创建一个新的Facebook相册会创建两个相册
我正在使用以下代码创建一个新的facebook相册。它的作品-但它创造了专辑两次!它只在一个地方被调用,而不是在其他任何地方被调用 我拼命想弄明白为什么会发生这种事。这可能与会议有关吗?在OnCreate()中单击一个按钮即可调用创建新相册代码 以下是创建相册的代码:Android-创建一个新的Facebook相册会创建两个相册,android,facebook,Android,Facebook,我正在使用以下代码创建一个新的facebook相册。它的作品-但它创造了专辑两次!它只在一个地方被调用,而不是在其他任何地方被调用 我拼命想弄明白为什么会发生这种事。这可能与会议有关吗?在OnCreate()中单击一个按钮即可调用创建新相册代码 以下是创建相册的代码: public void createNewAlbum(Session session, String albumName) { if (session.isOpened()) { SessionState state =
public void createNewAlbum(Session session, String albumName) {
if (session.isOpened()) {
SessionState state = session.getState();
if (state.isOpened()) { //added this
Bundle params = new Bundle();
params.putString("name", albumName);
Request.Callback callback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
// use response id to upload photo to that album
errText.setText("New Album created response: " + response.toString());
//need to get the newly created album ID.
try
{
JSONObject graphResponse =response.getGraphObject().getInnerJSONObject();
try
{
albID = graphResponse.getString("id");
//UPLOAD photos to that album
UploadToAlbum(Session.getActiveSession(), albID);
}
catch (JSONException e)
{
Log.d( "JSON error "+ e.getMessage(), albID );
albID =null;
}
}
catch (Exception e) {
e.printStackTrace();
albID = null;
}
}
};
Request request = new Request(session, "me/albums",params, HttpMethod.POST,callback);
request.executeAsync();
}//end state session is opened
}//end session if
}
这里有什么明显的东西吗?
当活动加载时,我调用“LogInToFacebook()。
然后单击按钮并创建相册。
但它被创造了两次。创建了两个空相册,两个相册都有相同的ID。如果这里没有任何明显的信息,那么我也会发布我的登录代码,因为我真的不理解它。事实证明,这是Facebooks GraphAPI中的一个大错误-该错误已分配给团队进行修复,但谁知道需要多长时间才能修复它 有人知道为什么会在这里创建两张相同的相册吗?我想我的问题可能类似于:为什么会多次执行请求,是否与回调有关?
public void createNewAlbum(Session session, String albumName) {
if (session.isOpened()) {
SessionState state = session.getState();
if (state.isOpened()) { //added this
Bundle params = new Bundle();
params.putString("name", albumName);
Request.Callback callback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
// use response id to upload photo to that album
errText.setText("New Album created response: " + response.toString());
//need to get the newly created album ID.
try
{
JSONObject graphResponse =response.getGraphObject().getInnerJSONObject();
try
{
albID = graphResponse.getString("id");
//UPLOAD photos to that album
UploadToAlbum(Session.getActiveSession(), albID);
}
catch (JSONException e)
{
Log.d( "JSON error "+ e.getMessage(), albID );
albID =null;
}
}
catch (Exception e) {
e.printStackTrace();
albID = null;
}
}
};
Request request = new Request(session, "me/albums",params, HttpMethod.POST,callback);
request.executeAsync();
}//end state session is opened
}//end session if
}