startService()是创建新的Service实例还是使用现有的实例? 例如,在以下代码中,它是创建两个UpdateService实例还是只创建一个UpdateService实例? 感谢。
int[] appWidgetIds = new int[] {1, 2};
for (int appWidgetId : appWidgetIds) {
Intent intent = new Intent(context, UpdateService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
context.startService(intent);
}
答案 0 :(得分:50)
如果服务已经启动,则它不会作为第二个副本启动,但仍会在现有实例上调用onStart()
。服务是天生的单身人士 - 服务中正好有0或1份服务。
答案 1 :(得分:14)
暂时不推荐使用onStart
方法,而是使用onStartCommand
。