1

我有一个音乐播放器的小部件,并且希望能够在按下不同的按钮时发送广播。我想要做的是当按下按钮时,小部件将公共广播发送到另一个 BroadcastReceiver,以便它可以处理不同的操作。

在我的带有 BroadcastReceiver 的活动类中:

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();

    if (action.equals(Constants.ACTION_NEXT)) {
      Log.d("RECEIVER", "ACTION_NEXT");
    }
  }
};

@Override
protected void onStart() {
  super.onStart();
  IntentFilter filter = new IntentFilter();

  //Widget actions
  filter.addAction(Constants.ACTION_NEXT);

  registerReceiver(broadcastReceiver, new IntentFilter(filter));
}

在我的小部件中:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
  RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);

  PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(Constants.ACTION_NEXT), 0);
  views.setOnClickPendingIntent(R.id.WidgetNextButton, pendingIntent);
  appWidgetManager.updateAppWidget(appWidgetId, views);
}

非常感谢任何帮助或其他解决方案!

编辑:忘了提及我的实际问题:BroadcastReceiver 从不接收广播

4

0 回答 0