Android服务 - 多次调用startService并导致值混淆...

om2*_*345 6 android android-service

我有一些来自我的代码的条件调用,它启动相同的服务,不同的数据值通过bundle传递给该服务.当我检查只满足一个条件时,服务适用于所有条件.但是当2个或更多条件匹配时,它们会调用相同的服务,但捆绑中的数据值不同.问题是当满足此方案时,第一次调用发送的值不会被替换为第二个条件以启动相同的服务.所以服务的反应是错误的.

就是这样

if(some cond)
{
    some values in serivce intent bundle.startService(serviceintent1);
}
if(some cond)
{
    some data in intent bundle.startService(serviceintent1);
}
Run Code Online (Sandbox Code Playgroud)

满足两个条件时,调用startService两次.但我在第二个条件startService调用中从第一个条件获取值.

在这个问题上帮助我......

Tos*_*osa 3

onStartCommand 中的返回类型是什么?

您应该阅读有关服务的生命周期的信息。 https://developer.android.com/reference/android/app/Service.html#ServiceLifecycle

我建议使用 IntentService,因为它是为处理异步任务而设计的,它也在工作线程中启动。 http://developer.android.com/reference/android/app/IntentService.html

要真正帮助您,您的服务代码非常重要:)