startService()是创建新的Service实例还是使用现有的实例?

时间:2010-03-25 18:14:11

标签: android

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);
    }

2 个答案:

答案 0 :(得分:50)

如果服务已经启动,则它不会作为第二个副本启动,但仍会在现有实例上调用onStart()。服务是天生的单身人士 - 服务中正好有0或1份服务。

答案 1 :(得分:14)

暂时不推荐使用onStart方法,而是使用onStartCommand