首页 > 解决方案 > 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();

标签: androidoncreate

解决方案


我们总是可以覆盖这些函数并添加更多函数,但问题是当没有人调用这些函数时如何自动调用它们?我们还没有编写任何代码来调用它们。

这就是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 中的方法。从这里复制

如需更多研究,请点击此链接:

链接 1

链接 2


推荐阅读