android在服务之间交换数据

时间:2012-06-15 04:09:23

标签: android service xmpp

我正在为android创建一个xmpp聊天客户端。与asmack相关的所有内容都已完成,我可以检索并显示主要活动中的好友列表。我也能收到朋友的聊天消息。我无法从聊天窗口向服务发送数据。这样我就可以回复并向朋友发送聊天消息。我已经研究了一些例子,但没有人完全符合我的要求。请注意,我无法使用onbind方法,因为该服务并未特别绑定到任何活动,但许多活动可以将数据发送到服务。 一个合乎逻辑的解释是好的。如果有人知道一些代码样本,那么这将是非常好的。 当xmpp连接收到聊天消息时,我还需要从服务更新聊天窗口。

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以将BroadcastReceiver定义为Service,并且可以通过任意数量的活动发送广播消息,您也可以将广播接收器定义为Activity,这可能是收听服务发送的消息。

答案 1 :(得分:0)

你必须在service.OnStart方法中覆盖onStart方法,你可以获得Activity的意图。如果要将ArrayList从activity传递给service,可以将arraylist转换为array。

在你的活动中

Intent intent=new Intent(ActivityName.this,Service.class);         
Bundle b=new Bundle()
b.putStringArray("Array", your_array)
intent.putExtras(b);
startService(intent);

在你的服务中

public void onStart(Intent intent, int startid){
    super.onStart(intent, startid);
    Bundle b=intent.getExtras();
    String[] Array = b.getStringArray("Array");
}