Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 控制另一个应用程序服务_Android_Service - Fatal编程技术网

Android 控制另一个应用程序服务

Android 控制另一个应用程序服务,android,service,Android,Service,我有应用程序A和B。A包含一个服务,可以从B启动 我知道如何启动它,但如何从B向属于a的正在运行(后台)服务发送消息/意图 如何从B向属于a的正在运行的(后台)服务发送消息/意图 您可以使用相同的方法:调用startService()startService()仅在需要时才会启动服务,但它始终调用onStartCommand(),将提供的意图提供给您。这是双向的:A在B上启动服务,B在A上启动服务 备选办法包括: 将apendingent从a传递到B,并让B使用pendingent与a通信,对

我有应用程序A和B。A包含一个
服务
,可以从B启动

我知道如何启动它,但如何从B向属于a的正在运行(后台)服务发送消息/意图

如何从B向属于a的正在运行的(后台)服务发送消息/意图

您可以使用相同的方法:调用
startService()
startService()
仅在需要时才会启动服务,但它始终调用
onStartCommand()
,将提供的
意图提供给您。这是双向的:A在B上启动服务,B在A上启动服务

备选办法包括:

  • 将a
    pendingent
    从a传递到B,并让B使用
    pendingent
    与a通信,对a的服务调用
    startService()
    ,或向a的服务设置的动态注册的
    广播接收器发送广播

  • 将a
    Messenger
    从a传递到B,并让B使用
    Messenger
    消息
    对象发送回a上的
    处理程序
    (尽管这很可能需要a的服务中的
    HandlerThread

  • 让B绑定到A的服务,其中A导出服务并提供AIDL定义的绑定


在这里查看关于
pendingent
,您是否知道
pendingent#send(int code)
中的
code
是什么?我试图找出何时何地可以访问它,但失败了…@pskink:我从未使用过。如果我不得不猜测,它是传递给
onActivityResult()
的结果代码,如果此
PendingContent
是使用
Activity
上的
createPendingResult()
创建的。反过来,这是基于
BroadcastReceiver
上的
setResult()
。谢谢,我会检查它,但是我强烈感觉它应该在activity/receiver/service中统一访问…似乎它只对
getBroadcast
有效,在
BroadcastReceiver#onReceive
中,可以通过调用
getResultCode()
来获取
code
,对于活动/服务,我仍然没有绿色的想法:
pendingContent#send
工作正常,但
code
类似于
Unobtainium
-)