我的应用程序使用由BOOT_COMPLETE BroadcastReceiver启动的服务,如下所示:
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, MyService.class));
}
如果在我的应用程序中的某个活动中,我尝试绑定到此服务:
getApplicationContext().bindService(new Intent(getApplicationContext(), MyService.class),
_serviceConnection, Context.BIND_AUTO_CREATE);
创建了一个新的服务实例,尽管第一个实例(由BroadcastReceiver创建)仍然在运行。我在服务的onCreate()方法和第一个中记录了进程ID service在与活动不同的进程中运行,第二个实例在与活动相同的进程中创建。我尝试在清单的service元素中设置一个android:process参数(两者都带有leading:和without),但结果保持不变。
如何绑定到在不同进程中运行的服务,而不是在运行该活动的进程中创建新实例?
答案 0 :(得分:0)
我可以向你保证,但事实并非如此。无论您启动或绑定多少次,特定服务组件的一个实例一次只能处于活动状态。此外,该服务仅在一个进程中运行。它无法在不同的时间在不同的进程中运行。