0

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));
    }
4

2 に答える 2

0

まず、GC メッセージがプロセスから送信されていることを確認します。私は使うのが好きです

adb logcat -v threadtime

各メッセージに関連付けられた pid と tid を確認します。使用する

adb shell ps

GCing pid がアプリであることを確認します。

2 番目に、正確に何がメモリをすべて割り当てているのかを確認する必要があります。そのための最適なツールはDDMS Allocation Trackerで、スタンドアロンで利用できるか、Eclipse+ADT に統合されています。選択したアプリケーションによって実行された最後の 512 の割り当てが表示されるため、GC メッセージが飛んでいる間に実行すると、何が割り当てられ、どのコードによって割り当てられているかを確認できるはずです。

于 2013-10-23T17:52:57.453 に答える