众所周知,PictureListener是一个包含单一公共方法的界面:onNewPicture(WebView view, Picture picture)
。
它适用于简单的场景,但在我的情况下,我需要处理各种错误(由于互联网的可预测的不可预测性,特别是通过WiFi / 3G)。
为此,我打算创建一个稍微复杂的类,实现PictureListener并具有一些额外的状态信息和相关的处理函数。到目前为止一切都那么好,但是......
其中一个功能需要访问WebView
- 在onNewPicture()
中作为参数传递的相同WebView,但在其他地方PictureListener
不可用。
所以,我想把WebView作为参数传递给MyPictureListener
的构造函数并将其保存为私有数据成员。
我之前没有见过这种实施的例子,我不确定是否会违反我不熟悉的规则。
具有WebView数据成员的PictureListener是否有意义?我应该注意哪些陷阱?
答案 0 :(得分:1)
不,它没有。
你不会违反规则,但你会违背WebView&的“心态”。 PictureListener设计:
不是将WebView参数传递给PictureListener的构造函数,而是将view
中的onNewPicture()
参数强制转换为WebView,并在WebView中调用访问其中任何内容的方法。