我在状态栏中显示一个图标.现在我想在打开该内容时立即删除该图标,一段时间后如果我们收到任何提醒,该图标将再次显示.我怎样才能做到这一点?
我有一个运行后台服务来获取数据.我检查新数据并发送状态栏通知.发送通知是服务的一部分.当用户看到该通知时,他登录到应用程序并接受它.那个时候我想从状态栏中删除它.我能这样做吗?
我在我的通知中添加了两个操作按钮,当我点击其中任何一个时,他们执行所需的操作,但通知仍保留在我的通知抽屉中.我知道,当点击操作按钮时,可以从通知抽屉中删除通知,因为Gmail的功能就是这样.如果我单击主要通知,则会打开应用程序并从通知抽屉中删除通知.
这是我的代码片段:
Intent completeIntent = new Intent(getApplicationContext(), MarkComplete.class);
completeIntent.putExtra("rowid", inrowid);
completeIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
PendingIntent markCompleteIntent = PendingIntent.getActivity(getApplicationContext(), inrow, completeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Title")
.setContentText("text")
.setContentIntent(notificationReleaseIntent)
.setPriority(Notification.PRIORITY_HIGH)
.setAutoCancel(true)
.addAction(R.drawable.complete, "Mark Complete", markCompleteIntent);
Run Code Online (Sandbox Code Playgroud)
编辑 - 正如zionpi指出我需要调用notification.cancel(); 单击addAction按钮后删除通知.我只是将这个方法添加到PendingIntent指向的类中.
public static void CancelNotification(Context ctx, int notifyId) {
String s = Context.NOTIFICATION_SERVICE;
NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
mNM.cancel(notifyId);
}
Run Code Online (Sandbox Code Playgroud) 我想从状态栏中删除所有可取消的通知.我知道如何删除我之前看过这篇文章的应用程序通知,但我想删除其他应用程序通知.
在所有Android版本的通知中都有一个"清除"按钮,用这个标志清除所有通知: Notification.FLAG_AUTO_CANCEL
这意味着可以取消所有通知.但我还没有找到任何关于如何做到这一点的文件.有没有人指导我怎么做?
谢谢
我想禁用来自其他应用程序(例如 Facebook 和其他应用程序)的通知。
我知道这是可能的,因为通知关闭应用程序具有此功能。