[英]Multithreading in Android - why doesn't my onCompleted callback get called?
[英]How can I pass data returned from Facebook when Request.callback onCompleted() method is called, to my fragment in Android?
我目前正在尝试将Facebook集成到我的Android应用程序中。 我一直没有让应用程序连接和认证的问题。 但是一旦执行onCompleted(Response response)
回调方法,我在理解如何处理数据时会遇到一些麻烦。 以下方法有效:
private void onSessionStateChange(Session session, SessionState state,
Exception exception) {
if (state.isOpened()) {
Log.i(TAG, "Logged in...");
new Request(session, "/me", null, HttpMethod.GET,
new Request.Callback() {
@Override
public void onCompleted(Response response) {
GraphObject graphObject = response.getGraphObject();
JSONObject data = graphObject.getInnerJSONObject();
Log.i(TAG, "My DETAILS: ");
try {
Log.i(TAG, "ID: " + data.getLong("id"));
Log.i(TAG, "Name: " + data.getString("name"));
Log.i(TAG, "Email: " + data.getString("email"));
Log.i(TAG,
"Gender: " + data.getString("gender"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}).executeAsync();
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
}
}
当我运行应用程序时,Facebook进行身份验证,将检索数据并将其成功输出到Logcat窗口。 但是,我无所适从,无法理解如何将JSONObject
传递回片段进行进一步处理。
我在网上看到的大多数示例都只是将JSONObject
内容设置为片段中的视图,或者甚至没有多大帮助,只需/* Handle response here */
说/* Handle response here */
或类似内容即可。 我还有另一种类似的方法,我想获取个人资料图片网址并下载图片,但无法将网址返回到片段中进行进一步处理。 我是否应该像开发一个以JSONObject
作为参数的runnable
类,并从onCompleted()
方法启动一个单独的线程来按我希望的方式处理它那样做?
我当前的目标是获取使用我的应用程序的用户朋友列表,并保存他们的个人资料图片以在应用程序中使用。 我会以错误的方式处理吗?
因此,如果我对您的理解正确,那么您将获取所有数据,可以解析JSON,但无法将数据传递给其他片段? 您为什么不写入可从任何地方访问的文件?
为什么要“下载”图像,这会增加处理时间。 只需使用以下URL: https://graph.facebook.com/"+uid.trim()+"/picture?type=normal
: https://graph.facebook.com/"+uid.trim()+"/picture?type=normal
"+uid.trim()+"/picture https://graph.facebook.com/"+uid.trim()+"/picture?type=normal
type https://graph.facebook.com/"+uid.trim()+"/picture?type=normal
normal uid是您的用户ID。 与Universal Image Loader结合使用时,可以在图像视图中异步加载图像。 您节省了时间-避免了手动缓存文件或将其保存在SD上的麻烦。
但是兄弟,这里的问题是Facebook将于2015年4月停止对您正在使用的API的支持。开始移植您的应用程序以使用最新的facebook API; 但是,这对于获取用户信息不是很有用。 欢呼并继续编码:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.