服务从不同的应用程序启动活动

时间:2017-06-27 09:11:35

标签: android android-activity service bindservice

我开发了两个使用相同服务的应用程序(将来会更多)。当我启动其中一个应用程序时,他们应该启动该服务(如果尚未启动)并发送活动名称以告知服务该应用程序可用。

该服务位于第三个项目中,该项目在应用程序中实现为库。该服务在后台侦听事件并启动其中一个应用程序。

现在的问题是,我如何启动服务。

我已经尝试过startService和bindService:

startService:

Intent intent = new Intent(this.getApplicationContext(), DriverBackgroundListener.class);
        intent.putExtra("className", "com.example.testProject.Activity1");
        this.startService(intent); 

为这两个应用启动新服务,因为该服务不在同一个应用中。所以2服务正在运行并监听同一事件。

bindService:

我在Messenger的帮助下实现了它。 (https://developer.android.com/guide/components/bound-services.html

这里的问题是,只有最少一个Activity绑定到服务时,服务才会运行。但我需要完成活动,以便用户可以正常使用设备。但这将解除服务并将其关闭。

我还必须在重启后运行服务。但我想如果我创建一个在设备启动后启动活动的BroadcastReceiver,那将会有效。

有人知道如何处理这个问题吗?

表示最诚挚的问候

费边

1 个答案:

答案 0 :(得分:0)

如果您启动服务然后使用标志0绑定它,即使断开连接它仍然可以工作。您可以先尝试连接服务并在onServiceConnected()中进行检查,如果没有启动服务。另请查看AIDL https://developer.android.com/guide/components/aidl.html