【发布时间】:2019-04-08 06:44:16
【问题描述】:
单击通知操作不会触发运行 BroadcastReceiver
Intent cancelIntent = new Intent(c, NotificationBroadcast.class);
cancelIntent.setAction(CANCEL_UPLOAD);
cancelIntent.putExtra(EXTRA_REQUEST, new Request(request));
//c is ApplicationContext
PendingIntent cancel = getBroadcast(c,1, cancelIntent,
FLAG_CANCEL_CURRENT);
nb.addAction(R.drawable.close, c.getString(R.string.cancel), cancel);
NotificationBroadcast 实现
public class AppNotification {
public static class NotificationBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Request cancel = cancelRequest((Request) intent.getParcelableExtra(EXTRA_REQUEST));
if (CANCEL_UPLOAD.equals(intent.getAction()))
cancel.clearFlag(FLAG_REQUEST);
updateRequest(context, cancel);
}
}
}
我希望 NotificationBroadcast#onReceive 在单击通知操作但未被调用时被调用;
【问题讨论】:
-
NotificationBroadcast是否已在您的清单中注册?如果是这样,怎么做?当您单击操作时,您是否在 Logcat 中看到任何消息? -
不,NotificationBroadcast 没有注册,因为我使用了明确的意图。
标签: java android android-notifications