2

特定のキーワードを含む新しいメッセージを受信するたびに通知を表示しています。次のコードを使用して、通知領域に通知を表示しました。

String contentTitle = "V-Card Received"; 
String contentText = "You have reeived a new V-Card"; 
 mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(context, receiveVCard.class);
 notificationIntent.putExtra("sender", sender);
notificationIntent.putExtra("vCardString", messages[i].getDisplayMessageBody());
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
int icon = R.drawable.contactvcard;
CharSequence tickerText = "V-Card Received";
long when = System.currentTimeMillis();
notifyDetails = new Notification(icon, tickerText, when);
notifyDetails.setLatestEventInfo(context, contentTitle, contentText, pendingIntent); 
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails); 
notifyDetails.flags =Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;

ユーザーがクリックしたら、通知を削除したいと思います。Notification.FLAG_AUTO_CANCEL通知をキャンセルするために使用しました。ただし、ユーザーが通知をクリックしても通知は削除されません。ユーザーが通知をクリックしたときに、通知を削除する他の方法はありますか。

4

4 に答える 4

2

基本的に、通知が置かれた後にフラグを設定しています。

提供したコードの最後の 2 行を入れ替える必要があります。nm.notify(); を呼び出す前にフラグを設定します。

于 2012-12-13T06:02:52.943 に答える
1

これを試してみてください

--> notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0,notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
--> notification.flags |= Notification.FLAG_AUTO_CANCEL; 
notificationManager.notify(i, notification);
于 2012-12-13T05:54:01.680 に答える
1

これは、アプリの 1 つで使用した通知のプロトタイプです

    Notification notification=new Notification(R.drawable.ic_stat_download_interrupted,getResources().getString(R.string.dint),System.currentTimeMillis());
    RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_download_complete);
    contentView.setImageViewResource(R.id.notimage, R.drawable.ic_stat_download_interrupted);
    contentView.setTextViewText(R.id.nottext, getResources().getString(R.string.dint));
    contentView.setTextViewText(R.id.nottitle, update.initialDetail.fileName);

    notification.contentView = contentView;      
    notification.flags=Notification.FLAG_AUTO_CANCEL;
    Intent notificationIntent = new Intent(getApplicationContext(), MainDashboard.class);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    notificationIntent.putExtra(EXTRA_NOTIFICATION_SHOW_DOWNLOADS, true);
    PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),0,notificationIntent, 0);
    notification.contentIntent=contentIntent;

nm.notify(update.updateId.intValue(), notification);
于 2012-12-13T05:56:26.957 に答える
0

それは私のために働いています

notifyDetails.flags =Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL;

これがお役に立てば幸いです。

于 2012-12-13T05:59:27.667 に答える