控制android示例中使用的记录器流程

时间:2016-05-26 06:07:03

标签: android logging

我喜欢在Android示例中使用记录器的方式,并希望在我的应用程序中实现相同的方式。但我发现很难理解控制流程。有人可以帮助我理解它。

我正在推荐RecyclerView Sample。

下载链接:https://developer.android.com/downloads/samples/RecyclerView.zip

项目结构的屏幕截图:

The screenshot of project structure

Edit1:我没有得到实际发生的事情,它说用于管道:接收日志数据的下一个节点...... 。以及如何在控制台和UI上打印消息。

LogWrapper类的代码部分:

// For piping:  The next node to receive Log data after this one has done its work.
private LogNode mNext;

/**
 * Returns the next LogNode in the linked list.
 */
public LogNode getNext() {
    return mNext;
}

/**
 * Sets the LogNode data will be sent to..
 */
public void setNext(LogNode node) {
    mNext = node;
}

我想知道logger包下各种类之间的关系,以及当我们从activity,fragment或adapter调用Log.d()时控件如何在它们之间流动。

1 个答案:

答案 0 :(得分:0)

通过链接列表实现管道。

MainActivity.initializeLogging()中填写此列表。

LogWrapper - > MessageOnlyLogFilter - >日志查看

所有这些类都实现了接口LogNode(可以打印)和列出相似的行为(节点并移动到下一个)。

LogWrapper将所有消息发送到标准记录器,如果存在任何节点,它将管道消息(在我们的示例中为MessageOnlyLogFilter)。

MessageOnlyLogFilter会删除除消息之外的所有内容并将其推送到下一个节点(LogView)。

LogView扩展了TextView并在屏幕上打印日志。