我想通过startService(MyService.class)
从一个Activity启动我的服务,这很好用。但在某些特殊情况下,我希望以不同的方式启动服务,即传递一些参数给服务。
我在Activity中尝试了以下代码:
Intent startMyService= new Intent();
startMyService.setClass(this,LocalService.class);
startMyService.setAction("controller");
startMyService.putExtra(Constants.START_SERVICE_CASE2, true);
startService(startMyService);
在我的服务中,我使用:
public class MyIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("controller"))
{
// Intent was received
}
}
}
在onCreate()中注册IntentReceiver,像这样:
IntentFilter mControllerIntent = new IntentFilter("controller");
MyIntentReceiver mIntentReceiver= new MyIntentReceiver();
registerReceiver(mIntentReceiver, mControllerIntent);
使用这个解决方案,服务已经启动但意图没有被接收到。我该如何启动服务并传递我的参数?
谢谢你的帮助!
通过这个解决方案,您可以启动服务,但是无法接收到意图。 如何启动服务并传递参数?
感谢您的帮助!