【发布时间】:2014-11-18 07:47:24
【问题描述】:
我有一个生成位图的 pojo 方法。完成后,我想将位图扔到 UI 活动中。这是一个示例,但这里是:
private void sendBitmap(Bitmap bitmap) {
// TODO - I'm in the pojo where I want to send the bitmap
}
仅供参考:我要通知的 UI 活动在我的项目之外。我的意思是,我的项目是一个 SDK,因此其他开发人员会在它可用时立即获取此信息。
我一直试图弄清楚这一点,但有些困惑。
- 我需要一个“回调”接口吗?
- 还是“监听器”接口?
- 或两者兼而有之?
我在 MyActivity 中创建了一个回调接口。到目前为止,一切都很好。这是目前的样子:
import android.graphics.Bitmap;
public class MyActivity {
// protected void whateverOtherMethods (Bundle savedInstanceState)
// {
// .
// .
// .
// .
// .
// .
//
// }
/**
* Callback interface used to supply a bitmap.
*/
public interface MyCallback {
public void onBitmapReady(Bitmap bitmap);
}
}
演示应用的 DoSomethingActivity 可以实现我创建的回调接口。这是演示应用的 DoSomethingActivity 中回调的实现:
private final MyCallback myCallback = new MyCallback() {
@Override
public void onBitmapReady(Bitmap bitmap) {
// TODO - do something with the bitmap
}
};
我缺少通知回调的步骤是什么?也许我几乎拥有它,但我很困惑,所以我在这里寻求一点帮助。
更新:
好的,我已将回调“BitmapCallback”接口的“实现”添加到 pojo 中。这里是:
public class ProcessImage implements BitmapCallback {
/**
* pojo method to return bitmap
*/
private void sendBitmap() {
this.onBitmapReady(bitmap);
}
@Override
public void onBitmapReady(Bitmap bitmap) {
// we still need to send the bitmap to cusomer App.
}
我无法从 SDK Activity 中移动回调定义,因为我希望客户的应用程序在其代码中实现回调,以便在位图返回给客户的应用程序时对其进行处理。
这是我的Activity中的回调接口:
public interface BitmapCallback {
public void onBitmapReady(Bitmap processedBitmapy);
}
这是客户应用程序中的实现:
private final BitmapCallback bitmapCallback = new BitmapCallback()
{
@Override
public void onBitmapReady(Bitmap bitmap) {
// TODO Auto-generated method stub
}
};
称我为笨蛋,但我很难理解这一点。
【问题讨论】:
-
你在寻找什么事件来回调?如果它的单击事件,您应该查看 OnClickListener,您可以在其中调用自定义侦听器。 developer.android.com/reference/android/view/…
-
为什么投反对票?这是基于正在更改的某些位图的回调。它与 UI 无关。
标签: java android callback listener