当前位置: 首页 > 知识库问答 >
问题:

如何像Android片段一样进行自定义异步回调?

公冶峰
2023-03-14

在享受了Android片段带来的诸多乐趣后,我们开始互相交谈并参与活动。我很高兴尝试从后台服务进行一些异步回调。出于我的目的,我只希望活动中的侦听器从后台服务获得回调。

我在后台服务中创建了一个接口,并实例化了一个成员监听器:

private OnSomethingHappenedListener mListener;
public interface OnSomethingHappenedListener {
    void onSomethingHappened(String mWhateverHappened);
}

在应该发生的地方,我有以下代码

if (mListener != null)
    {
        mListener.onSomethingHappened(AHHHappened);
    }else
    {
        Log.e(TAG,"mListener for the interface method is null for some reason?");
    }

然后在接收回调的活动中,我实现了合约,并覆盖了方法。

public class listenerActivity extends AppCompatActivity implements SomeService.OnSomethingHappenedListener{

    // Receive Callback
        @Override
        public void onSomethingHappened(String mWhateverHappened) { Log.i(TAG,mWhateverHappened);
        }
}

我已经用片段做了与此非常相似的事情,并且没有错误,但是由于某种原因,在这种情况下,当服务运行时mListener为空,并且无法启动调用。我错过了什么初始化步骤?谢谢。

编辑2017年4月6日从创建侦听器然后附加到在类中实现它,然后覆盖该方法。

我真正想做的是在活动端执行一个简单的实现,而不需要创建服务的对象实例来调用侦听器setter方法。我想做的是Android如何使用片段

我正在查看片段示例,其中onAttach()回调传递了上下文,并且该上下文被转换为接口类并设置为侦听器,如何获取正确的上下文,它应该是接口的实例?

@Override 
public void onAttach(Context context) 
{ super.onAttach(context); 
if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; 
}

共有1个答案

田兴朝
2023-03-14

因为您没有初始化侦听器

创建一个方法,在SomeService类中设置侦听器,如下所示

public void setMylistener(OnSomethingHappenedListener onSomethingHappenedListener)
{
    mListener = onSomethingHappenedListener
}

并在调用某个服务类之前调用此方法

someService.setMylistener(onSomethingHappenedListener);

这就是它。

 类似资料:
  • 先生/女士,我想使用android JAVA将一个片段回调到另一个片段。我试图找到问题,但没有找到解决方案。若我使用接口,它会向活动发送回调响应,这是我不想要的。非常感谢。

  • 主要内容:前记,1.自定义视图,2.自定义异常,3.自定义异常的原理前记 在前面的文章中, 表示了视图解析的原理和异常解析器的解析原理。 这篇通过如何自定义视图和自定义异常处理和自定义异常处理的原理进行说明。 这里说明一下, 自定义的视图和自定义的异常都是会代替容器默认的组件的, 异常还好说, 就是不符合就抛, 视图的话需要注意一下优先级, 可以在自定义的视图解析器上加上注解。 1.自定义视图 这里原理就是添加一个视图和视图解析器, 然后放入容器中, 最后访问相应

  • 本文向大家介绍Android 自定义View步骤,包括了Android 自定义View步骤的使用技巧和注意事项,需要的朋友参考一下 例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放。 一个设计良好的自定义view和其他设计良好的类很像。封装了某个具有易用性接口的功能组合,这些功能能够有效地使用CPU和内存,并且十分开放的。但是,除了开始一个设计良好

  • 我正在开发一个应用程序,我想在其中显示一个,但我想替换默认的Android。 那么如何自定义呢? 我需要一些图形和动画吗? 我读了下面的帖子,但没能成功: 自定义进度条Android

  • 我真的需要温习一下我的异步等待和promise。我想要一些建议。 我正在对firebase firestore进行异步函数调用。函数应根据单个输入参数返回字符串。 该功能适用于1-1用户聊天。该功能是创建聊天/查找现有聊天,并返回其ID。 现在,我得到的作为返回值的和不知道为什么。除了返回之外,该函数还能正常工作。 我有两个功能。一个是React类组件生命周期方法,另一个是我的firebase异步

  • 本文向大家介绍Android自定义图片集合,包括了Android自定义图片集合的使用技巧和注意事项,需要的朋友参考一下 本文主要包括以下内容: 使用Xfermode设置圆角图片 使用BitmapShader设置圆角图片 滑动旋转缩放的bimp图片 图片颜色处理(滑动) 图片 + 文字 其中1,2是两种不同方式处理图片圆角的情况。3,是通过Matrix进行图片缩放,旋转等。4,是通过Matrix操作