具有WebView数据成员的PictureListener - 这有意义吗?

时间:2011-05-02 20:00:59

标签: interface webview listener android-webview

众所周知,PictureListener是一个包含单一公共方法的界面:onNewPicture(WebView view, Picture picture)

它适用于简单的场景,但在我的情况下,我需要处理各种错误(由于互联网的可预测的不可预测性,特别是通过WiFi / 3G)。

为此,我打算创建一个稍微复杂的类,实现PictureListener并具有一些额外的状态信息和相关的处理函数。到目前为止一切都那么好,但是......

其中一个功能需要访问WebView - 在onNewPicture()中作为参数传递的相同WebView,但在其他地方PictureListener不可用。

所以,我想把WebView作为参数传递给MyPictureListener的构造函数并将其保存为私有数据成员。

我之前没有见过这种实施的例子,我不确定是否会违反我不熟悉的规则。

具有WebView数据成员的PictureListener是否有意义?我应该注意哪些陷阱?

1 个答案:

答案 0 :(得分:1)

不,它没有。

你不会违反规则,但你会违背WebView&的“心态”。 PictureListener设计:

  1. PictureListener是一个界面和 没有收到WebView作为 参数。
  2. 另一方面,WebView有一个 关联的专用方法 PictureListener用它。所以WebView “知道”关于PictureListener。
  3. 不是将WebView参数传递给PictureListener的构造函数,而是将view中的onNewPicture()参数强制转换为WebView,并在WebView中调用访问其中任何内容的方法。