我开发了两个使用相同服务的应用程序(将来会更多)。当我启动其中一个应用程序时,他们应该启动该服务(如果尚未启动)并发送活动名称以告知服务该应用程序可用。
该服务位于第三个项目中,该项目在应用程序中实现为库。该服务在后台侦听事件并启动其中一个应用程序。
现在的问题是,我如何启动服务。
我已经尝试过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,那将会有效。
有人知道如何处理这个问题吗?
表示最诚挚的问候
费边
答案 0 :(得分:0)
如果您启动服务然后使用标志0绑定它,即使断开连接它仍然可以工作。您可以先尝试连接服务并在onServiceConnected()
中进行检查,如果没有启动服务。另请查看AIDL https://developer.android.com/guide/components/aidl.html。