我正在尝试制作一个简单的秒表应用程序,它会在通知中显示时间,并为您提供一些按钮,让您可以启动和停止秒表。
如何在通知中添加按钮?我怎么指出'那个按钮到某个功能?
看到我在想的是什么: http://image.prntscr.com/image/a4113f39cbaf46c597dc32f07bcc531c.png
actionIntent = new Intent(this, MainActivity.class);
actionPendingIntent = PendingIntent.getService(this, 0, actionIntent, PendingIntent.FLAG_UPDATE_CURRENT);
timerNotification.addAction(android.R.drawable.ic_media_pause, "Start", actionPendingIntent);
这就是我现在拥有的。在意图中我将把我想要执行的函数放在哪里?
答案 0 :(得分:0)
向通知添加操作并指定pendingintent
答案 1 :(得分:0)
如果要自定义通知布局,可以将setContent()函数与自定义布局的RemoteViews一起使用。
Remote View mRemoteView = new RemoteViews(getPackageName(), R.layout.notification_general);
Notification.Builder mBuilder = new Notification.Builder(context);
mBuilder.setSmallIcon(R.mipmap.ic_battery)
.setContent(mRemoteView)
.setContentIntent(notificationPendingIntent);
mNotificationManager.notify(1, mBuilder.build());
要处理onClick事件的通知按钮,您需要为每个按钮使用单独的PendingIntents(由具有不同操作的Intents组成)。稍后在onReceive()中,您只需检查传入的Intent&根据它执行不同的代码。请记住在清单上分配您的监听器。
Intent generalIntent = new Intent(context, GeneralReceiver.class);
generalIntent.putExtra(REQUEST_CODE, ACTION_GENERAL);
PendingIntent generalPendingIntent =
PendingIntent.getBroadcast(context, 1, generalIntent, 0);
mRemoteView.setOnClickPendingIntent(R.id.btnNotificationGeneral, generalPendingIntent);
public static class GeneralReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Your code here
}
}