我在其他人提出的有关此问题的许多问题中进行了搜索,但所有问题都令人困惑且无济于事。
我的问题是我为应用程序制作了小部件,它开始正常,但它对事件没有反应。我在小部件上有 2 个按钮。这是实现它的类的来源。
public class MediaPlayerWidget extends AppWidgetProvider {
public static final String NEXT_SONG = "1";
public static final String PLAY_PAUSE = "2";
private MediaPlayerActivity act=new MediaPlayerActivity();
private void addEvents(Context ctxt) {
Intent intent = new Intent(ctxt, MediaPlayerWidget.class);
intent.setAction(PLAY_PAUSE);
PendingIntent pi = PendingIntent.getBroadcast(ctxt, 0, intent, 0);
RemoteViews views = new RemoteViews(ctxt.getPackageName(),
R.layout.widget_layout);
views.setOnClickPendingIntent(R.id.widget_play, pi);
intent=new Intent(ctxt,MediaPlayerWidget.class);
intent.setAction(NEXT_SONG);
pi=PendingIntent.getBroadcast(ctxt, 0, intent, 0);
views.setOnClickPendingIntent(R.id.widget_next, pi);
}
@Override
public void onReceive(Context ctxt,Intent i){
String cmp=i.getAction();
if(cmp.equals(NEXT_SONG)){
act.nextSong();
}else if(cmp.equals(PLAY_PAUSE)){
act.playPause();
}
}
@Override
public void onUpdate(Context ctxt, AppWidgetManager mgr, int[] appWidgetIds) {
addEvents(ctxt);
}
}
有谁知道似乎是什么问题?我已经看到其他一些使用 Service 进行刷新的解决方案,但是因为我有 2 个按钮,所以我不需要这样的东西。如果需要任何其他代码,我会提供。
编辑:
如果您不知道上面的代码有什么问题,谁能告诉我或提供一些关于如何在小部件中实现按钮侦听器/事件的示例代码。