我的代码中有一些条件调用,它启动相同的服务,不同的数据值通过bundle传递给该服务。 当我检查只满足一个条件时,服务适用于所有条件。 但是当2个或更多条件匹配时,它们会调用相同的服务,但捆绑中的数据值不同。 问题是当满足此方案时,第一次调用发送的值不会被替换为第二个条件以启动相同的服务。 所以服务的反应是错误的。
就像这样
if(some cond)
{
some values in serivce intent bundle.startService(serviceintent1);
}
if(some cond)
{
some data in intent bundle.startService(serviceintent1);
}
当满足两个条件时,调用startService两次。 但我在第二个条件startService调用中从第一个条件获取值。
在这个问题上帮助我......
答案 0 :(得分:3)
onStartCommand中的返回类型是什么?
您应该了解服务的生命周期。 https://developer.android.com/reference/android/app/Service.html#ServiceLifecycle
我建议使用IntentService,因为它是为处理asyncron任务而设计的,它也是在一个工作线程中启动的。 http://developer.android.com/reference/android/app/IntentService.html
为了真正帮助您,您的服务代码非常重要:)
答案 1 :(得分:0)
看一下Bind service to activity in Android问题..讨论startservice和bindservice之间的区别..我想这可以解决你的问题。