【发布时间】:2010-10-22 05:54:10
【问题描述】:
我想显示一个通知,显示一个进度 正在进行的操作。这对我很有效。 但同时远程视图应包含取消按钮以停止正在进行的操作。通常的内容意图仍然应该做其他事情,即不取消正在进行的操作。看来我只能有一个意图。
我必须指定一个在点击时启动的 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;
【问题讨论】:
标签: android