android - onCreate() 方法是如何运行的?
问题描述
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
当我在 MyActivity.java 中看到这个基本源代码时,onCreate() 方法只是重写。但是当我运行应用程序时,我可以看到覆盖的方法“onCreate()”运行。这怎么可能?
如果可以在该代码中运行 onCreate 方法,我认为应该有类似的代码
onCreate();
解决方案
我们总是可以覆盖这些函数并添加更多函数,但问题是当没有人调用这些函数时如何自动调用它们?我们还没有编写任何代码来调用它们。
这就是CALLBACK FUNCTIONS概念的用武之地。
回调的概念是在另一个类中的某些工作完成时通知一个类同步/异步。有人称之为好莱坞原则:“不要叫我们我们叫你”。
这是一个例子:
class A implements ICallback {
MyObject o;
B b = new B(this, someParameter);
@Override
public void callback(MyObject o){
this.o = o;
}
}
class B {
ICallback ic;
B(ICallback ic, someParameter){
this.ic = ic;
}
new Thread(new Runnable(){
public void run(){
// some calculation
ic.callback(myObject)
}
}).start();
}
interface ICallback{
public void callback(MyObject o);
}
A 类调用 B 类在线程中完成一些工作。如果线程完成工作,它将通过回调通知 A 类并提供结果。所以不需要轮询什么的。一旦结果可用,您就会得到结果。
在 Android 中,回调用于活动和片段之间。因为 Fragment 应该是模块化的,所以你可以在 Fragment 中定义一个回调来调用 Activity 中的方法。从这里复制
如需更多研究,请点击此链接:
推荐阅读
- sql - 如何回到microsoft sql server的最后一步?
- c# - Telnet 服务器进程未在首次访问 c# 控制台应用程序时加载用户配置文件
- regex - 如何使用 RegEx 查找可变长度字符串
- java - 如何在 java.text.DateFormat 中使用不受支持的语言环境
- php - PHP Post没有在jquery表单提交上设置值
- select - TYPO3 - TCA: type-> 'select' 的必需属性
- jquery - jquery ui datepicker 选择的年份应该在顶部
- go - 如何使用反射包在 Golang 中正确创建切片?
- flutter - 将特定类型的列表存储到共享首选项
- c# - 在 C# 中第一次出现没有正则表达式的字母时拆分字符串