Android-Evernote API getContent()GC\u并发
我试图从Evernote Android API中获取注释的内容 我已经成功地使用该服务进行了身份验证,我可以执行“查找”操作,没有任何问题 但是当我尝试运行下面的代码时,它永远不会返回,LogCat会发出“GC_并发释放2032K,15%释放20186K/23623K,暂停12ms+10ms,总计166ms”的洪流 如果有人能帮助我,我会很高兴的!我已经搜索了这个网站和谷歌,但没有找到任何东西!谢谢你的帮助 我的代码:Android-Evernote API getContent()GC\u并发,android,evernote,Android,Evernote,我试图从Evernote Android API中获取注释的内容 我已经成功地使用该服务进行了身份验证,我可以执行“查找”操作,没有任何问题 但是当我尝试运行下面的代码时,它永远不会返回,LogCat会发出“GC_并发释放2032K,15%释放20186K/23623K,暂停12ms+10ms,总计166ms”的洪流 如果有人能帮助我,我会很高兴的!我已经搜索了这个网站和谷歌,但没有找到任何东西!谢谢你的帮助 我的代码: EvernoteSession session = getEvernote
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));
}
EvernoteSession session=getEvernoteSession(ctx);
试一试{
session.getClientFactory().createNoteStoreClient().getNote(noteID、true、false、false、new-OnClientCallback()){
@凌驾
成功时的公共无效(注释数据){
receiver.newData(data.getContent().toString());
数据=空;
gc();
}
@凌驾
公共无效OneException(异常){
receiver.newData(ctx.getString(R.string.error\u while\u receiving\u note));
}
});
}捕获(TTransportException e){
receiver.newData(ctx.getString(R.string.error\u while\u receiving\u note));
}
首先,确保GC消息来自您的进程。我喜欢使用
adb logcat -v threadtime
查看与每条消息关联的pid和tid。使用
adb shell ps
检查GCing pid是否为您的应用程序
其次,您需要了解到底是什么在分配所有内存。实现这一点的最佳工具是,可以单独使用,也可以集成到Eclipse+ADT中。它将向您显示所选应用程序最近执行的512次分配,因此,如果您在GC消息飞行时运行它,您应该能够看到分配了什么以及由哪段代码进行分配。首先,我需要提到我是Evernote员工。我最近开发了新版本的Android SDK,并注意到了一个与您类似的错误。原因是底层字节存储中存在问题,它会标记数据并将其发送到服务器 新版本2.0.0修复了此错误: 如果问题仍然存在,请随时在Github创建问题