两个Package中的activity和service如何通讯?

gengzhen_2005 2011-03-23 07:02:55
在一个package内,我知道该如何通讯,在两个不同的package我还不清楚,请高手指示一下,在下学习了。
AIDL定义服务接口肯定可以满足同一个package内的通讯,但是不知道AIDL定义服务接口是否满足不同package之间的通讯。

欢迎大家参与讨论,如果有什么好的通讯方式,也都介绍一下,多多给分。
...全文
379 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
gengzhen_2005 2011-03-29
  • 打赏
  • 举报
回复
谢谢各位了,广播肯定是可以的,不过我觉得AIDL应该更专业,结贴了,再次感谢大家。
liubangguo2009 2011-03-25
  • 打赏
  • 举报
回复
用Intent广播就可以了.用不着那么复杂.
hotkarriver 2011-03-25
  • 打赏
  • 举报
回复

我用的他的代码,位置都是一样的。。。
男主角 2011-03-25
  • 打赏
  • 举报
回复
真是无语,前几天,搞个,还准备看。一直没看。今天算是学习了
youngwolf 2011-03-25
  • 打赏
  • 举报
回复
8楼的方法有些地方说得有些耸人听闻,他里面说的名字必须怎样怎样,几乎都不是必须的。

楼上的import出错,是你放的位置不正确。
hotkarriver 2011-03-25
  • 打赏
  • 举报
回复
看了8楼地址的例子,有点问题

import com.lifeblood.ITestService.Stub;
服务端import出错。。。The import com.lifeblood.ITestService cannot be resolved

客户端正常,不知道什么原因。。。
sky123123 2011-03-25
  • 打赏
  • 举报
回复
个人觉得AIDL比较好使。 给你创建AIDL实现数据共享的步骤吧

http://www.docin.com/p-120987445.html

希望能够帮助你‘
foley_liao 2011-03-25
  • 打赏
  • 举报
回复
这个肯定可以的啦
#8 的例子挺好!
raoyongchao 2011-03-25
  • 打赏
  • 举报
回复
用广播也可以做到...AIDL觉得太麻烦
芸芸芸芸 2011-03-25
  • 打赏
  • 举报
回复
aidl 当然是可以的拉
day 2011-03-25
  • 打赏
  • 举报
回复
发个广播如何?

Intent
gengzhen_2005 2011-03-25
  • 打赏
  • 举报
回复
正在研究中,研究后给出一个简单易懂的说明,谢谢大家支持。
prince58 2011-03-24
  • 打赏
  • 举报
回复
这里有个例子 http://www.eoeandroid.com/forum-viewthread-tid-19385-highlight-aidl.html

知道了package内的aidl通讯,修改一下就可以用在两个package了。服务端的service要加上一个intent-ftlter,添加一个action项,方便其他的package能启运它。然后这个service的属性添加上android:process=":remote" 让服务在远程进程中运行。
gengzhen_2005 2011-03-24
  • 打赏
  • 举报
回复
楼上的各位高手,关于不同package的AIDL通讯是否有相关的例子,我看到的都是在一个package内的AIDL通讯,请赐教。
念茜 2011-03-24
  • 打赏
  • 举报
回复
AIDL文件是用来生成JAVA接口的


//P1.adil
package com.android.P1service;
interface IP1service
{
...
}

//P1service.java
import android.app.service;

public class P1service extends Service
{
......
}


//P2.java
import com.android.P1service.IP1service;

public class P2 extends Activity
{

}


DrSmart 2011-03-23
  • 打赏
  • 举报
回复
AIDL就是解决跨进程访问的服务器模式,不同package当然可以使用了,系统中的service都是AIDL提供的啊,楼主你多看看music.git源码了解下AIDL
ameyume 2011-03-23
  • 打赏
  • 举报
回复
AIDL就是远程服务,就是为了执行进程间通信的,除了可以承载服务的应用程序访问,还可以从其他应用程序访问。远程服务使用AIDL向客户端定义自身。
无论你的两个package是不是在一个应用程序内,都可以用AIDL进行通信。
a220315410 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yang79tao 的回复:]
Messenger和AIDL
前者比较简单,后者我还没机会用到过。
[/Quote]
学习了,两个都没用过的菜鸟表示很感激。
念茜 2011-03-23
  • 打赏
  • 举报
回复
这个帖子我先mark一下,明天上班到办公室查查我原来的总结
youngwolf 2011-03-23
  • 打赏
  • 举报
回复
Messenger和AIDL
前者比较简单,后者我还没机会用到过。
加载更多回复(1)

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧