如何向正在运行的服务或后台活动发送意向



我现在正在安卓系统中开发一个音乐播放器,目前无法使用通知。我在通知中添加了上一个、播放/暂停和下一个三个操作。如果单击这些按钮,则每个操作都需要执行一个PendingIntent。

我的应用程序目前正在构建,有一个MainActivity和一个Service,用于播放加载的音频文件。Main活动通过引用服务进行通信,以执行下一首歌等操作。

我想通过通知上的操作实现的是,意向被发送到服务本身,但不启动它,也不发送到MainActivity,但如果它当前处于后台,则不将其带回前台。这样,服务就可以自己控制该操作,或者让MainActivity调用适当的方法。

经过一番研究,我发现有些人在使用广播接收器,但据我所知,广播被发送到任何合适的应用程序,这是我绝对不想要的。我也找不到一些指向解决方案的文档或类似文档。

最好的方法是什么?

感谢您的帮助!

。。。但据我所知,广播是发送到任何合适的应用

如果像创建通知指南中那样,为BroadcastReceiver使用显式Intent,则可以确保没有其他组件将接收广播(从那里复制的代码片段(:

Intent snoozeIntent = new Intent(this, MyBroadcastReceiver.class);
snoozeIntent.setAction(ACTION_SNOOZE);
snoozeIntent.putExtra(EXTRA_NOTIFICATION_ID, 0);
PendingIntent snoozePendingIntent =
PendingIntent.getBroadcast(this, 0, snoozeIntent, 0);

因此,这似乎是一条路:让你的BroadcastReceiver实例决定你的应用程序的哪个组件应该控制。

最新更新