两个apk之间通过广播进行通信 请问能取得返回值吗?

oO桀骜 2012-06-07 04:42:56
比如我用a程序来发广播b程序接收广播并做一些在b程序里的处理,请问,我在a里能接受到b里做了这些处理后的返回值吗?能吗?能的话怎么弄?谢谢
...全文
406 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oO桀骜 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

引用 1 楼 的回复:

再广播呗,呵呵



谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软……
[/Quote]


你好,这个四种模式我都尝试过,也不知道是不是我用的不对还是怎么了,没有得到我想要的效果,我说下我想要的效果,希望能说明白 然后得到你的指点。

一个应用我直接按home让他隐藏在后台,一段时间后我又想让这个应用中的某个activity界面到前台来(可能不是我之前按home键之前那个界面,也可能就是那个界面),那么 我使用什么方法来让这个应用中的某个activity到前台来?我现在使用的方法是在一个service或者广播接受者中使用如下代码

Intent intent = new Intent(getBaseContext(),abcActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

当我这么使用时,确实是能启动这个activity让他显示在界面上,我没有再abcActivity中设置模式,所以应该是默认的standard模式,如果我多次做上面的那个代码 我按back键就会重复出现多次退出abcActivity界面的情况,而我想要的是,如果是重复启动abcActivity那么我希望一直都是那一个activity,当然我可能会在intent中携带一些不一样的数据,请问我该如何做到:只启动的是一个activity,并且我每次在intent中携带的数据都能让abcActivity做出相应的调整?

希望我说明白了 谢谢了,如果你有空,希望能得到你的指点!
oO桀骜 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

引用 1 楼 的回复:

再广播呗,呵呵



谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软……
[/Quote]


你好,这个四种模式我都尝试过,也不知道是不是我用的不对还是怎么了,没有得到我想要的效果,我说下我想要的效果,希望能说明白 然后得到你的指点。

一个应用我直接按home让他隐藏在后台,一段时间后我又想让这个应用中的某个activity界面到前台来(可能不是我之前按home键之前那个界面,也可能就是那个界面),那么 我使用什么方法来让这个应用中的某个activity到前台来?我现在使用的方法是在一个service或者广播接受者中使用如下代码

Intent intent = new Intent(getBaseContext(),abcActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

当我这么使用时,确实是能启动这个activity让他显示在界面上,我没有再abcActivity中设置模式,所以应该是默认的standard模式,如果我多次做上面的那个代码 我按back键就会重复出现多次退出abcActivity界面的情况,而我想要的是,如果是重复启动abcActivity那么我希望一直都是那一个activity,当然我可能会在intent中携带一些不一样的数据,请问我该如何做到:只启动的是一个activity,并且我每次在intent中携带的数据都能让abcActivity做出相应的调整?

希望我说明白了 谢谢了,如果你有空,希望能得到你的指点!
鄙人姓胡 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 7 楼 的回复:

引用 6 楼 的回复:

引用 1 楼 的回复:

再广播呗,呵呵



谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKact……
[/Quote]

楼主看一下这个 http://blog.sina.com.cn/s/blog_5f599e1d01011tyn.html

这个里面介绍了几种常用的 FLAG 集合

FLAG_ACTIVITY_CLEAR_TOP 这种模式应该符合楼主的需求,可以试一下,其他几种都可以试一下
鄙人姓胡 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 1 楼 的回复:

再广播呗,呵呵



谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软件时,结果发现b会有退出N次的界……
[/Quote]

在android里,有4种activity的启动模式,分别为:
“standard” (默认)
“singleTop”
“singleTask”
“singleInstance”

“standard”和”singleTop”可以被实例化多次,并且存在于不同的task中,且一个task可以包括一个activity的多个实例;
“singleTask”和”singleInstance”则限制只生成一个实例,并且是task的根元素。

这个属性是在AndroidManifest.xml中<activity>标签属性中设置的,如:

<activity android:name=".app.StatusBarNotifications"
android:label="App/Notification/Status Bar"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.SAMPLE_CODE" />
</intent-filter>
</activity>


根据你自己的需求,看看需要设置哪种模式!
oO桀骜 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

再广播呗,呵呵
[/Quote]


谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软件时,结果发现b会有退出N次的界面,虽然出了第一次是对的,其他的都是黑色的,但是确实是出现了N次退出画面 我在使用广播调用b里的KKKK activity的语句是这样的

Intent intent1 = new Intent(context , KKKKActivity.class);
intent1.putExtra("mode", mode);
intent1.putExtra("directionsTravelMode", directionsTravelMode);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);


请问这个你知道怎么解决吗?我猜可能是intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这句造成的,可是不加这句貌似又会出问题。求解答,谢谢!
oO桀骜 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

A -> B -> A

互相广播吧
[/Quote]
如果返回值是简单的数据类型的话,楼主可以试试ADIL接口,这个是跨进程通讯的好方法
[/Quote]

谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软件时,结果发现b会有退出N次的界面,虽然出了第一次是对的,其他的都是黑色的,但是确实是出现了N次退出画面 我在使用广播调用b里的KKKK activity的语句是这样的

Intent intent1 = new Intent(context , KKKKActivity.class);
intent1.putExtra("mode", mode);
intent1.putExtra("directionsTravelMode", directionsTravelMode);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);


请问这个你知道怎么解决吗?我猜可能是intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这句造成的,可是不加这句貌似又会出问题。求解答,谢谢!
oO桀骜 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

如果返回值是简单的数据类型的话,楼主可以试试ADIL接口,这个是跨进程通讯的好方法
[/Quote]

谢谢 adil这个是i好办法,我再试试用这个解决下,现在用广播解决了,顺便问下,我这个现在用广播出问题了,就是我用a调用b里面的其中一个KKKK activity,调用了后b后台再用a调用b的那个KKKK activity ,如此反复操作N次 当我在b里用的KKKactivity按back按钮退出b软件时,结果发现b会有退出N次的界面,虽然出了第一次是对的,其他的都是黑色的,但是确实是出现了N次退出画面 我在使用广播调用b里的KKKK activity的语句是这样的

Intent intent1 = new Intent(context , KKKKActivity.class);
intent1.putExtra("mode", mode);
intent1.putExtra("directionsTravelMode", directionsTravelMode);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);


请问这个你知道怎么解决吗?我猜可能是intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这句造成的,可是不加这句貌似又会出问题。求解答,谢谢!
lkppostt 2012-06-12
  • 打赏
  • 举报
回复
用aidl,加回调函数
鄙人姓胡 2012-06-08
  • 打赏
  • 举报
回复
如果返回值是简单的数据类型的话,楼主可以试试ADIL接口,这个是跨进程通讯的好方法
AMinfo 2012-06-07
  • 打赏
  • 举报
回复
A -> B -> A

互相广播吧
louyong0571 2012-06-07
  • 打赏
  • 举报
回复
再广播呗,呵呵

80,493

社区成员

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

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