我通过意图传递要处理的数据:
Intent intent = new Intent(getActivity(), LocationService.class);
intent.putExtra....
...
startService(intent);
onCreate方法在浏览应用程序时调用一次,但是当我关闭应用程序并从任务列表中删除时(我检查过,服务仍在运行),然后我再次启动应用程序 - 再次调用onCreate.
来自doc:
如果服务尚未运行,系统将首先调用 onCreate(),然后调用onStartCommand()。
更新
你在onStartCommand结尾处返回什么常量 方法
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
请发布服务类型和startmode
LocationService extends Service
答案 0 :(得分:1)
是的,android文档是正确的,它只会在第一次创建时调用服务的onCreate(),然后将所有意图传递给onStartCommand()。
但我已经遇到过这两个谷歌小组讨论可能对你有所帮助
https://groups.google.com/forum/#!topic/android-developers/LtmA9xbrD5A 和https://groups.google.com/forum/#!topic/android-developers/H-DSQ4-tiac
没什么帮助,但可能有一些兴趣。
享受!