读书人

关于Callback函数通知UI的有关问题

发布时间: 2013-03-28 10:20:24 作者: rapoo

关于Callback函数,通知UI的问题
有一个以下的类

class HYPERSIP_CALLBACK
{
public final static int HYPERSIP_EVENT_CALL_IN= 0;
public final static int HYPERSIP_EVENT_ANSWER= 1;
public final static int HYPERSIP_EVENT_ISVIDEODATA= 2;
public final static int HYPERSIP_EVENT_TERMINATED= 3;
public final static int HYPERSIP_EVENT_RENDERING= 4;

public void callback(int port, int event)
{
Log.e("HYPERSIP_API", "HYPERSIP_CALLBACK.callback, event = " + event);
switch(event)
{
case HYPERSIP_EVENT_RENDERING:
//will be transfer back to the JNI codes

case HYPERSIP_EVENT_TERMINATED:

break;
case HYPERSIP_EVENT_CALL_IN:
//这边会收到相信的消息,现在要通知更新UI,让主界面能调出一个新界面,这要如何实现
break;
case HYPERSIP_MESSAGE_INCOMING:
break;
}
}
}


这类是独立的,会在onCreate时去调用
HYPERSIP_CALLBACK m_callback = new HYPERSIP_CALLBACK();
HYPERSIP_API.HYPERSIP_RegisterCallback(m_callback);

问题见上面的红色注明,因为以前是写C++,刚入手android,有些不太清楚,麻烦大家了。
[解决办法]
搞个handler来做这些事情吧
[解决办法]
一般我的做法是吧callback这个方法写在activity里,这个activity实现了接口
interface someInterface {
public void callback(int port, int event);//这个callback最终要在handler里调用
}

然后HYPERSIP_CALLBACK加一个属性譬如callbackListener,然后这个callbackListener就是相应的activity。

你这种做法很早以前我也用过

可以改成这样

class HYPERSIP_CALLBACK
{
public final static int HYPERSIP_EVENT_CALL_IN = 0;
public final static int HYPERSIP_EVENT_ANSWER = 1;
public final static int HYPERSIP_EVENT_ISVIDEODATA = 2;
public final static int HYPERSIP_EVENT_TERMINATED = 3;
public final static int HYPERSIP_EVENT_RENDERING = 4;
private Handler handler;
public void setHandler(Handler handler) {
this.handler = handler;
}

public void callback(int port, int event)
{
Log.e("HYPERSIP_API", "HYPERSIP_CALLBACK.callback, event = " + event);
switch(event)
{
case HYPERSIP_EVENT_RENDERING:
//will be transfer back to the JNI codes

case HYPERSIP_EVENT_TERMINATED:


break;
case HYPERSIP_EVENT_CALL_IN:
//<span style="color: #FF0000;">这边会收到相信的消息,现在要通知更新UI,让主界面能调出一个新界面,这要如何实现</span>
handler.sendEmptyMessage(event);
break;
case HYPERSIP_MESSAGE_INCOMING:
break;
}
}
}

读书人网 >Android

热点推荐