gpt4 book ai didi

android - on"XYZ"回调事件如何工作?

转载 作者:太空狗 更新时间:2023-10-29 16:23:34 25 4
gpt4 key购买 nike

如果可能的话,我正在寻找概念解释或示例代码

我是 (android) 开发的新手,据我所知,有大量的“onEvent()”方法。例如,View.onClickListener()、onPageDownload、onProgressUpdate...我注意到一切都以“on”开头,我假设它暗示该方法是一个回调事件?这与处理程序是一回事吗?

我很难理解事件是如何工作的,以及制作我自己的事件处理程序的最佳方法是什么。

假设我想创建一个处理程序 onImageDownloaded(),当某个事件发生时它会被调用。就像我正在下载一个图像,我想在图像下载时触发​​一个事件(是的,我知道有一个叫做 AsyncTask 的东西,并且还从后台线程发布了一个可运行的消息,但是出于教学原因,我们假设该过程也可能在 UI 线程上)。 Android 如何知道调用方法 onImageDownloaded() ?或者更确切地说,我如何指定当下载图像时,我希望它调用我的方法 onImageDownloaded()

我读过有关广播 Intent 的信息,但这似乎更多是系统级别的,有点过头了。

我知道当你在 View 中制作一个按钮时,你可以这样做

final Button b = (Button) findViewById(R.id.mybutton);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("MyActivity", "button is clicked");
}
});

这几乎就像为按钮设置一个“钩子(Hook)”,在单击事件发生时调用特定的“onClick”。

在我的特殊情况下,我将如何根据操作“XYZ”创建自定义回调方法??

抱歉问题太长了,感谢您耐心阅读并尝试理解它

最佳答案

我们首先要了解什么是回调:

In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine (or function) defined in a higher-level layer.

Wickipedia: Callback

为了使我们的代码更具可重用性和优化性,我们需要回调。

比方说:您有一个从互联网下载数据的。如果你想让这个类更容易重用,你将定义一个 protocol(任何 class 构造)它将通知谁。之后符合该协议(protocol)(或实现该协议(protocol))的可以相应地使用下载的数据。

通常使用 interface 关键字进行回调,但也可以使用 abstract class 或简单的 class

Here is simple illustration how to make and use our own callbacks .

关于android - on"XYZ"回调事件如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8237458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com