首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gomobile使用回调

Gomobile使用回调
EN

Stack Overflow用户
提问于 2016-03-03 16:46:23
回答 2查看 1.2K关注 0票数 1

我有一个用go mobile编写的库,它应该只有一个回调,但当我尝试实现它时,我得到了两个额外的方法。

代码语言:javascript
复制
@Override
public Seq.Ref ref() {
    return null;
}

@Override
public void call(int i, Seq seq, Seq seq1) {}

问题是,在Android Activity上实现go回调的正确方式是什么?

现在我有下一步:

代码语言:javascript
复制
public class MainActivity extends Activity implements implements Mobile.Callback {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_register);
          Mobile.Client client = Mobile.New("192.168.2.1", 9000, this);
          try {
             client.Connect();
          } catch (Exception e) {
             e.printStackTrace();
          }
    }

    @Override
    public void OnMessage(String s) {
       Log.e("GO", s);
    }

    @Override
    public Seq.Ref ref() {
       return null;
    }

    @Override
    public void call(int i, Seq seq, Seq seq1) {

    }
}

连接已成功建立,但在回调到activity I时得到:

代码语言:javascript
复制
panic: runtime error: invalid memory address or nil pointer dereference

如果有人能帮忙,我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2016-03-03 22:07:12

你绑定的Go源码是什么?(套餐移动端和回调接口)

有关传递实现Go接口类型的Java类的信息,请参阅https://godoc.org/golang.org/x/mobile/cmd/gobind的“将目标语言对象传递给Go”一节

基本上,生成的Java接口类型不能直接使用。相反,Java类应该扩展生成的Java接口的Stub类。

票数 0
EN

Stack Overflow用户

发布于 2016-04-11 14:38:21

在安卓系统上使用Mobile.Callback.Stub代替Mobile.Callback

代码语言:javascript
复制
...
Mobile.Client client = Mobile.New("192.168.2.1", 9000,  new Callbacks());

...
class Callbacks extends Mobile.Callback.Stub {
        @Override
        public void OnMessage(String s) {
        ....
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35767181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档