为什么在几乎所有的教程或示例中人们都会这样做:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
...
context.startService(resumeIntent);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
这不是说每次执行更新时都会启动新服务吗?这是最好的解决方案吗?或者发送广播更好吗? 不应该
context.startService(resumeIntent);
最好在onEnabled方法中完成吗?
答案 0 :(得分:2)
不,该服务仅在尚未运行时启动:如果它已在运行,则会在onStartCommand
中发送一个新的Intent并且它可以正确处理。
至于是使用它还是使用onEnabled
这样做的好处是,如果服务没有运行,每次都重新启动服务:onEnabled
将启动服务但是如果服务因任何原因而被杀,你可能无法重新启动它。