可以说我有一个非常简单的界面:
interface Result {
fun success(data : String)
fun onError(e : Exception) }
我有MainActivity:
class MainActivity : AppCompatActivity(), Result {
}
第二类-可以说:
class SecondActivity : AppCompatActivity(), Result {
}
在这两个活动中,实施方式完全相同。但是,我只能在Main Activity中收到回调。当我启动第二个活动并运行操作时,我可以从MainActivity中看到日志,而不能从SecondActivity中看到日志。知道为什么吗?
你从启动任务MainActivity
到你通过this
它的实例Result
的实例内部接口MainActivity
,所以在收到回调MainActivitys'
回调。
如果您从SecondActivity
和启动相同的任务,然后通过this
,它将在的实例Result
内部引用接口的实例SecondActivity
,那么您将在中获得回调SecondActivity
。
请记住,如果返回MainActivity
,则在启动任务SecondActivity
完成之前,您可能会得到一个提示NPE
。
interface
并且abstract
不能有直接实例,该实例implement
或extends
将要创建其实例的类,对于实现或扩展类的每个实例,将在实现类的实例内部创建interface
或的新实例abstract
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句