我正在尝试执行一些动作,例如暂停音乐,在按钮点击Android中的自定义通知播放音乐。 目前我正在这样做,
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, "Custom Notification", when);
NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.layout);
contentView.setTextViewText(R.id.textView1, "Custom notification");
contentView.setOnClickPendingIntent(R.id.button1, pIntent);
notification.contentView = contentView;
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;
notification.flags |= Notification.FLAG_NO_CLEAR; //Do not clear the notification
notification.defaults |= Notification.DEFAULT_LIGHTS; // LED
notification.defaults |= Notification.DEFAULT_VIBRATE; //Vibration
notification.defaults |= Notification.DEFAULT_SOUND; // Sound
mNotificationManager.notify(1, notification);
但是这个带我去另一个活动。 无论如何都要对同一活动实施通知操作。
例如..假设我提出了一个通知,当用户按下它时,然后在我当前的活动/服务中调用一些常规方法而不是带我去做某些活动
答案 0 :(得分:10)
首先为你的按钮指定一个意图:
RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.player_notify_layout);
Intent buttonsIntent = new Intent(context, NotifyActivityHandler.class);
buttonsIntent.putExtra("do_action", "play");
contentView.setOnClickPendingIntent(R.id.imgPlayPause, PendingIntent.getActivity(context, 0, buttonsIntent, 0));
然后创建一个活动来处理通知发生的每个操作:
public class NotifyActivityHandler extends Activity {
public static final String PERFORM_NOTIFICATION_BUTTON = "perform_notification_button";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String action = (String) getIntent().getExtras().get("do_action");
if (action != null) {
if (action.equals("play")) {
// for example play a music
} else if (action.equals("close")) {
// close current notification
}
}
finish();
}
}
最后,您应该在 AndroidManifest.xml 中定义活动。您也可以查看link。
我希望这对你有所帮助。