co*_*ndp 5 java android kotlin
我有一个像这样的基本活动,它具有抽象方法 abc()
abstract class Base: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
Log.i("abc", "onCreate base")
abc()
}
abstract fun abc()
}
Run Code Online (Sandbox Code Playgroud)
MainActiviy 扩展了 Base
class MainActivity : Base() {
override fun abc() {
Log.i("abc", "method called from base")
}
@Inject
lateinit var mainPresenter: MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.i("abc", "onCreate")
App.appComponent.plus(MainModule(this)).inject(this)
button.setOnClickListener {
mainPresenter.performToast(editText.text.toString())
}
}
fun showToast(string: String) {
toast(string)
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行 MainActivity 时,日志只显示“onCreate”。这意味着没有调用来自 Base 的 onCreate。你能告诉我为什么不调用基本方法吗?它看起来很傻,但我尝试过,但基础没有被称为相同的代码在 JAVA 中有效
您没有onCreate在这两个类中覆盖相同的方法。查看文档,似乎将根据 ifpersistableMode设置为调用一个或另一个persistAcrossReboots。这意味着Base无论您在子类中做什么,您类中的代码都可能永远不会被执行。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |