ImageButton 无法处理自定义通知 - Android

ImageButton isnt working on Custom Notification - Android

我正在尝试使用 ImageButton 创建自定义通知。 单击时,ImageButton 应该启动一个名为 TaskActivity 的 activity,但我无法实现。

以下是我的代码:

MainActivity.java

public void onCreate(Bundle savedInstanceState) {

    //button intents
    Intent cmdIntent = new Intent(
                       MainActivity.this, cmdButtonListener.class);
    PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(
                                        MainActivity.this, 0, cmdIntent, 0);

    //notification mgr
    int notifyID = 001;
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotifyMgr = (NotificationManager)getSystemService(ns);

    //new notification
    int icon = R.drawable.icon3;
    long when = System.currentTimeMillis();
    @SuppressWarnings({ "deprecation" })
    Notification notify = new Notification(icon,getString(R.string.text),when);

    //remote views
    RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.custom_notification);
    contentView.setImageViewResource(R.id.notification_image, R.drawable.icon4);
    contentView.setTextViewText(R.id.notification_title, "APP TITLE");
    contentView.setTextViewText(R.id.notification_text, "hello");
    contentView.setOnClickPendingIntent(R.id.notification_image, pendingSwitchIntent);
    notify.contentView = contentView; //set

    //notification intent
    Intent nIntent = new Intent(MainActivity.this,MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, nIntent, 0);

    notify.contentIntent = contentIntent;

    mNotifyMgr.notify(notifyID,notify);

}

public class cmdButtonListener 扩展 BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent){
        System.out.println("Here, I am here");
        Intent newAct = new Intent(MainActivity.this, TaskActivity.class);
        startActivity(newAct);

    }

}

Android 清单

  <receiver android:name=".MainActivity$cmdButtonListener" />

我不知道我哪里错了,因为我所做的与大多​​数在线教程中显示的完全一样。 :(

终于找到解决办法了...

声明以下变量

private static Context mContext;

public void onCreate(Bundle savedInstanceState) {

中添加以下代码
mContext = this;

最后,在 public class cmdButtonListener extends BroadcastReceiver{

中更改以下代码
Intent newAct = new Intent(MainActivity.this, TaskActivity.class);
startActivity(newAct);

Intent Act = new Intent(mContext,TaskActivity.class);
mContext.startActivity(Act);