效果图:
利用广播来实现通知栏按钮的点击事件,并且动态设置按钮,下面是所有的代码。
MainActivity:
package com.example.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RemoteViews;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
public NotificationManager mNotificationManager;
private RemoteViews mRemoteViews;
private Button start;
private boolean isPlay = false;
/** TAG */
private final static String TAG = "CustomActivity";
/** Notification 的ID */
int notifyId = 101;
/** NotificationCompat 构造器 */
NotificationCompat.Builder mBuilder;
/** 通知栏按钮广播 */
public ButtonBroadcastReceiver bReceiver;
/** 通知栏按钮点击事件对应的ACTION */
public final static String ACTION_BUTTON = "com.notifications.intent.action.ButtonClick";
// 标识
public final static String INTENT_BUTTONID_TAG = "ButtonId";
/** 上一首 按钮点击 ID */
public final static int BUTTON_PREV_ID = 1;
/** 播放/暂停 按钮点击 ID */
public final static int BUTTON_PALY_ID = 2;
/** 下一首 按钮点击 ID */
public final static int BUTTON_NEXT_ID = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a