繁体   English   中英

将BroadcastReceiver意图发送到服务

[英]Sending a BroadcastReceiver intent to a service

通常,您可以启动此类服务

Intent i = new Intent(context,MessageService.class);
context.startService(i);

但我想要做的是将BroadcastReceiver中收到的意图发送给服务。 如果我按照上面显示的方式启动服务,不会从BroadcastReceiver正确的意图?

基本上我只是希望我的BroadcastReceiver启动我的服务,然后让服务本身处理收到的意图

这可能吗?

从BroadcastReceiver发送Intent到服务:

Intent intent = new Intent(context,MessageService.class);
String value = "String you want to pass";
String name = "data";
intent.putExtra(name, value);
context.startService(intent);

onStartCommand服务方法中的Reciver Intent:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
    if (intent.getStringExtra("data") != null) {
     {
       String str=intent.getStringExtra("data");//get data here sended from BroadcastReceiver 
     }

    return super.onStartCommand(intent,flags,startId);
}

关于我们如何在Service和BroadcastReceiver之间进行通信,请参阅此帖子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM