Android - Evernote API getContent()GC_CONCURRENT

时间:2013-10-23 13:04:13

标签: android evernote

我尝试从Evernote Android API获取笔记的内容。

我已成功通过该服务进行身份验证,我可以毫无问题地执行“查找”操作。

但是当我尝试运行以下代码时,它永远不会返回,LogCat泛滥,“GC_CONCURRENT释放2032K,15%免费20186K / 23623K,暂停12ms + 10ms,总计166ms”。

如果有人能帮助我,我会很高兴的!我搜索了这个网站和谷歌,但没有找到任何东西!谢谢你的帮助!

我的代码:

EvernoteSession session = getEvernoteSession(ctx);

    try {
        session.getClientFactory().createNoteStoreClient().getNote(noteID, true, false, false, false, new OnClientCallback<Note>() {

            @Override
            public void onSuccess(Note data) {
                receiver.newData(data.getContent().toString());
                data = null;
                System.gc();
            }

            @Override
            public void onException(Exception exception) {
                receiver.newData(ctx.getString(R.string.error_while_receiving_note));
            } 
        });
    } catch (TTransportException e) {
        receiver.newData(ctx.getString(R.string.error_while_receiving_note));
    }

2 个答案:

答案 0 :(得分:0)

首先,确保GC消息来自您的进程。我喜欢用

adb logcat -v threadtime

查看与每封邮件关联的pid和tid。使用

adb shell ps

检查GCing pid是否是您的应用。

其次,你会想知道究竟是在分配所有内存。最好的工具是DDMS Allocation Tracker,可单独使用或集成到Eclipse + ADT中。它将显示所选应用程序执行的最后512次分配,因此如果您在GC消息飞行时运行它,您应该能够看到正在分配的内容以及代码段。

答案 1 :(得分:0)

首先,我需要提一下,我是一名Evernote员工。我最近开发了新版本的Android SDK,并注意到了类似的错误。原因是底层字节存储中存在一个问题,它会对数据进行标记并将其发送到服务器。

此错误已在新版本2.0.0中修复:https://github.com/evernote/evernote-sdk-android

如果问题仍然存在,请随时在Github上创建一个问题。