我想显示一个显示进度的通知
正在进行的操作。这对我来说效果很好。
但同时远程视图应包含取消按钮以停止正在进行的操作。通常的内容意图仍然应该做其他事情,即不取消正在进行的操作。看来我只能有一个意图。
我必须指定单击时启动的 contentIntent
通知:如果我不指定我会得到一些东西
线路:
E/ActivityManager( 62): Activity Manager Crash
E/ActivityManager( 62): java.lang.IllegalArgumentException: contentIntent required ...
对于“取消”按钮,我设置了另一个意图:
Intent cancelSyncIntent = new Intent("com.xyz.CANCEL_SYNC");
contentView.setOnClickPendingIntent(R.id.cancel_sync,
PendingIntent.getBroadcast(context, 0,
cancelSyncIntent, 0));
但这永远行不通。当按钮时我总是得到内容意图
被点击。看起来我无法在远程视图中使用按钮
通知?!
我可能会显示一条文字:“>”,但这似乎相当严厉。
更新:Afer J. 的建议:
final Notification n = new Notification(R.drawable.gen_auto_notification_icon, context.getResources()
.getString(
fastSyncOnly ? R.string.fast_synchronization_running_notification_title
: R.string.synchronization_running_notification_title), new Date().getTime());
n.flags = Notification.FLAG_ONGOING_EVENT;
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.in_progress_notification);
n.contentView = contentView;
// Intent cancelSyncIntent = new Intent("com.newsrob.CANCEL_SYNC");
Intent cancelSyncIntent = new Intent();
cancelSyncIntent.setClass(context, FireReceiver.class);
PendingIntent pendingCancelSyncIntent = PendingIntent.getActivity(context, 0, cancelSyncIntent, 0);
contentView.setOnClickPendingIntent(R.id.cancel_sync, pendingCancelSyncIntent);
Intent showDashboardIntent = new Intent(context, DashboardListActivity.class);
PendingIntent showDashboardPendingIntent = PendingIntent.getActivity(context, 0, showDashboardIntent, 0);
n.contentIntent = showDashboardPendingIntent;