Java Android API是基于回调的吗?
假设我有一个非常简单的Android应用程序,它只有一个活动——该活动显示一个普通屏幕。假设我已经重写了activity的onCreate()方法,它只是按照activity_main.xml中的描述设置屏幕,然后返回如下所示:Java Android API是基于回调的吗?,java,android,Java,Android,假设我有一个非常简单的Android应用程序,它只有一个活动——该活动显示一个普通屏幕。假设我已经重写了activity的onCreate()方法,它只是按照activity_main.xml中的描述设置屏幕,然后返回如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//boolean BT_success = turnBluetoothOn();
}
在桌面Java(或C或Python)程序中,执行从“main”方法/函数开始,程序在main完成执行后(以及main调用的所有函数返回后)完成执行。在上面描述的这个简单应用程序中,当onCreate()、onStart()和onResume()等常见回调函数集完成执行时,我的代码中是否有任何部分正在执行
从这个意义上讲,没有像桌面Java、C或Python那样的“main”方法,对吗?即使我们在这个主屏幕上有几个按钮,我们也会为这些按钮提供回调函数
那么,从应用程序开发人员必须实现某些回调函数(这些回调函数又可以调用其他函数)的意义上来说,Android API回调是否公平呢 我想说Android API在很大程度上是基于扩展的。您几乎总是需要扩展它们的类并重写它们的方法
super.onCreate(savedInstanceState);
是对超类方法的调用,通常由重写隐藏。但是,您可以自由地调用提供所需逻辑的类,但不必强制调用。我建议您这样做,并将这些类置于UnitTest之下。我认为Android API在很大程度上是基于扩展的。您几乎总是需要扩展它们的类并重写它们的方法
super.onCreate(savedInstanceState);
是对超类方法的调用,通常由重写隐藏。但是,您可以自由地调用提供所需逻辑的类,但不必强制调用。我建议您这样做,并将这些类置于UnitTest之下。我认为Android API在很大程度上是基于扩展的。您几乎总是需要扩展它们的类并重写它们的方法
super.onCreate(savedInstanceState);
是对超类方法的调用,通常由重写隐藏。但是,您可以自由地调用提供所需逻辑的类,但不必强制调用。我建议您这样做,并将这些类置于UnitTest之下。我认为Android API在很大程度上是基于扩展的。您几乎总是需要扩展它们的类并重写它们的方法
super.onCreate(savedInstanceState);
是对超类方法的调用,通常由重写隐藏。但是,您可以自由地调用提供所需逻辑的类,但不必强制调用。我建议您这样做,并将这些类置于UnitTest之下。这与任何GUI应用程序/框架的设计方式并无不同。甚至JavaSwing也以类似的方式工作。您实现了与UI控制事件挂钩的“回调”,而“main”函数通常只用于启动主事件循环并退出。注意,在这里,当main()退出时,程序本身不会退出。这与任何GUI应用程序/框架的设计方式没有什么不同。甚至JavaSwing也以类似的方式工作。您实现了与UI控制事件挂钩的“回调”,而“main”函数通常只用于启动主事件循环并退出。注意,在这里,当main()退出时,程序本身不会退出。这与任何GUI应用程序/框架的设计方式没有什么不同。甚至JavaSwing也以类似的方式工作。您实现了与UI控制事件挂钩的“回调”,而“main”函数通常只用于启动主事件循环并退出。注意,在这里,当main()退出时,程序本身不会退出。这与任何GUI应用程序/框架的设计方式没有什么不同。甚至JavaSwing也以类似的方式工作。您实现了与UI控制事件挂钩的“回调”,而“main”函数通常只用于启动主事件循环并退出。请注意,在这里,当main()退出时,程序本身不会退出。与Win32不同。一方面,Java的Android风格不容易适应固定函数的概念;它既没有委托(C#)、函子(C++,Python)也没有函数指针(C,C++) Android API仍然是事件驱动的,就像大多数GUI系统一样;但是,为框架的代码提供挂钩的主要方法是:
- 从库类继承,然后重写要重写的函数李>
- 在类中实现抽象接口(可能是匿名的),并将这些对象提供给框架