android - 快速获取好友姓名和ID列表

标签 android facebook-graph-api

在我的应用程序中,我通过以下方式获取用户的好友:

https://graph.facebook.com/me?fields=id,name&access_token=xxxx

上面的内容实际上是由 Facebook Android SDK 完成的,所以我实际上是这样创建请求的:

    Bundle params = new Bundle();
    params.putString("fields", "name,id");
    asyncFacebookRunner.request("me/friends", params, "GET", listener, null);

我像这样解析 JSON 响应:

            JSONObject data = Util.parseJson(response);
            JSONArray friendsData = data.getJSONArray("data");
            mDbAdapter.deleteAllFriends();

            for (int i = 0; i < friendsData.length(); i++) {
                JSONObject friend = friendsData.getJSONObject(i);
                mDbAdapter.addFriend(friend.getString("name"),
                        friend.getString("id"));
            }

Util 类是 Facebook Android SDK 的一部分。

在我打开 wifi 的 Android 手机上,发送、检索和解析响应大约需要 15-20 秒(我的帐户有大约 370 个 friend )。我见过其他一些应用程序可以在大约 2 秒内完成此操作。是什么让我放慢了速度?

最佳答案

我认为延迟的唯一小原因是数据库适配器,即在解析结果时添加项目。

要进行一些优化,您可以删除循环中的一些分配,并通过单个请求将数据添加到数据库:

JSONObject json = Util.parseJson(response);
JSONArray friendsData = json.getJSONArray("data");
String ids[] , names[] = new String[friendsData.length()];
for(int i = 0; i < friendsData .length(); i++){ 
        ids[i] = friendsData .getJSONObject(i).getString("id");
        names[i] = friendsData .getJSONObject(i).getString("name");
        }

//TODO Add data to your database

关于android - 快速获取好友姓名和ID列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838682/

相关文章:

android - 抽屉导航中的 ScrollView

android - 启动 junit/robolectric 测试 (gradle)

ruby-on-rails - 当有人在我的网站上按下 "liked"按钮时,我如何确保有人成功地 "like"我的网站?

PHP curl : Post to Facebook Page as Page

ios - 通过 Facebook Graph API 快速获取个人资料图片返回 "unsupported URL"

android - 如果数据库没有信息,检查数据库的内容提供者是否应该调用 REST 内容提供者

Android 视频录制时的预览处理

iphone - 创建网站的移动版本

facebook - 为 Facebook Graph Link 对象获取更大的(非缩略图)图像

java - 使用 Graph API v2.1 进行 Facebook 帖子搜索