服务从不同的应用程序启动活动
Service starts activities from different Apps
我开发了两个使用相同服务的应用程序(将来可能会更多)。当我启动其中一个应用程序时,他们应该启动服务(如果尚未启动)并发送 activity 的名称以告知服务该应用程序可用。
该服务位于第三个项目中,该项目在应用程序中作为库实现。该服务在后台侦听事件并启动其中一个应用程序。
现在的问题是,我如何启动服务。
我已经尝试过 startService 和 bindService:
启动服务:
Intent intent = new Intent(this.getApplicationContext(), DriverBackgroundListener.class);
intent.putExtra("className", "com.example.testProject.Activity1");
this.startService(intent);
为两个应用程序启动一个新服务,因为该服务不在同一个应用程序中。所以 2 个服务 运行正在侦听同一个事件。
绑定服务:
我在 Messenger 的帮助下实现了它。 (https://developer.android.com/guide/components/bound-services.html)
这里的问题是,如果至少有一个 Activity 绑定到该服务,该服务只会 运行。但我需要完成 Activity 以便用户可以正常使用设备。但这将解除绑定服务并将其关闭。
我还必须在重启后 运行 服务。但我想如果我创建一个 BroadcastReceiver 在设备启动后启动活动,那将起作用。
有人知道如何处理吗?
谢谢最诚挚的问候
法比安
如果您启动服务然后使用标志 0 绑定到它,即使在您断开连接后它仍然可以工作。您可以尝试先连接服务,然后在 onServiceConnected()
中进行检查,如果没有则启动服务。也看看 AIDL https://developer.android.com/guide/components/aidl.html.
我开发了两个使用相同服务的应用程序(将来可能会更多)。当我启动其中一个应用程序时,他们应该启动服务(如果尚未启动)并发送 activity 的名称以告知服务该应用程序可用。
该服务位于第三个项目中,该项目在应用程序中作为库实现。该服务在后台侦听事件并启动其中一个应用程序。
现在的问题是,我如何启动服务。
我已经尝试过 startService 和 bindService:
启动服务:
Intent intent = new Intent(this.getApplicationContext(), DriverBackgroundListener.class);
intent.putExtra("className", "com.example.testProject.Activity1");
this.startService(intent);
为两个应用程序启动一个新服务,因为该服务不在同一个应用程序中。所以 2 个服务 运行正在侦听同一个事件。
绑定服务:
我在 Messenger 的帮助下实现了它。 (https://developer.android.com/guide/components/bound-services.html)
这里的问题是,如果至少有一个 Activity 绑定到该服务,该服务只会 运行。但我需要完成 Activity 以便用户可以正常使用设备。但这将解除绑定服务并将其关闭。
我还必须在重启后 运行 服务。但我想如果我创建一个 BroadcastReceiver 在设备启动后启动活动,那将起作用。
有人知道如何处理吗?
谢谢最诚挚的问候
法比安
如果您启动服务然后使用标志 0 绑定到它,即使在您断开连接后它仍然可以工作。您可以尝试先连接服务,然后在 onServiceConnected()
中进行检查,如果没有则启动服务。也看看 AIDL https://developer.android.com/guide/components/aidl.html.