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);
我正在尝试使用 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);