Android 当运行音乐播放器的服务实际开始播放时更新小部件的Textview

Android 当运行音乐播放器的服务实际开始播放时更新小部件的Textview,android,widget,android-widget,android-service,Android,Widget,Android Widget,Android Service,我已经编写了一个音乐播放器服务MusicPlayer,它接收2个输入,1个播放列表名称,2个路径到每个歌曲/音频 这是完美的工作 我有一个小部件的应用程序,显示图像当前。我计划添加一个文本视图,以便在播放新歌时显示并更新当前播放的歌曲 无法确定如何从服务更新小部件 有什么方法可以访问小部件来更新所需信息吗?当然可以 widgetProvider本身就是一个广播接收器。因此,为了与小部件通信,您只需要发送一个广播 Intent intent = new Intent(this,YourWidget

我已经编写了一个音乐播放器服务MusicPlayer,它接收2个输入,1个播放列表名称,2个路径到每个歌曲/音频

这是完美的工作

我有一个小部件的应用程序,显示图像当前。我计划添加一个文本视图,以便在播放新歌时显示并更新当前播放的歌曲

无法确定如何从服务更新小部件

有什么方法可以访问小部件来更新所需信息吗?

当然可以

widgetProvider本身就是一个广播接收器。因此,为了与小部件通信,您只需要发送一个广播

Intent intent = new Intent(this,YourWidgetProvider.class);
intent.putExtra("SONG","Your Song");
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
// Use an array and EXTRA_APPWIDGET_IDS instead of 
AppWidgetManager.EXTRA_APPWIDGET_ID,
// since it seems the onUpdate() is only fired on that:
int[] ids = {widgetId};
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,ids);
sendBroadcast(intent);
在widgetprovider的onReceive方法中,可以从意图中提取所需的信息


参考资料:

检查此项:谢谢。这有帮助。按预期实施和运行。