我想顯示一個通知,顯示正在進行的操作的進度。這對我來說很好。 但是同時遠程視圖應該包含取消按鈕來停止正在進行的操作。通常的內容意圖仍應該做其他事情,即不取消正在進行的操作。但似乎我只能有一個意圖。通知中的PendingIntents
我必須指定在 單擊通知時啓動一個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;
謝謝J. 你確定它的方式嗎?我嘗試,見上面,但仍然在點擊「取消」時,我只能得到showDashboardIntent。 – 2010-05-14 16:00:18