从另一个服务启动服务
Posted
技术标签:
【中文标题】从另一个服务启动服务【英文标题】:Starting service from another service 【发布时间】:2015-03-22 09:25:06 【问题描述】:我正在尝试从另一个服务启动一个服务。但想知道出了什么问题。代码是这样的
class Service1 extends GCMBaseIntentService
@Override
protected void onMessage(Context arg0, Intent intent)
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
Intent service = new Intent(getApplicationContext(), Service2.class);
startService(service);
Service2 是
class Service2 extends Service
@Override
public int onStartCommand(Intent intent, int flags, int startId)
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Service Started", Toast.LENGTH_LONG).show();
我在 Service1 中获得了 Toast “Hello”,但没有从 Service2 中获得 Toast “Service Started”
【问题讨论】:
尝试使用Service1.this
或getBaseContext()
而不是getApplicationContext()
以启动Service1
你有什么错误吗?
我尝试了很多可能性,包括这个,但没有任何效果
不...我没有收到任何错误。什么都没有发生..
【参考方案1】:
您应该使用 Service1.this
或 getBaseContext()
而不是使用 getApplicationContext()
。您是否在 androidManifest 中声明了您的 Service2?
【讨论】:
Ohhhh.... Manifest...我应该为此打自己一百次...无论如何,非常感谢:) 别担心!我想我们都非常了解这些情况;) Manifest 肯定总能得到你,但说真的,我在处理服务时也遇到了 getApplicationContext() 的问题?这对我来说很奇怪,因为在 Service 中考虑 Application Context 似乎很自然,但是是的,如果处理 Service 甚至是 BroadcastReceivers,我总是使用 getBaseContext()以上是关于从另一个服务启动服务的主要内容,如果未能解决你的问题,请参考以下文章