0

我已经创建了一个NotificationView类来显示接收通知,SMS它工作正常,但是当我点击它时Notification它不会清理并且通知图标保留在通知栏上但我希望清理它请指定我一些提示或示例代码提前谢谢或者抱歉,如果查询没有被清除..我标记了代码

谢谢

上的displayNotification方法OnReceiveBroadcastReceiver

private void displayNotification(String msg){
    Intent i = new Intent(this.context,NotificationView.class);
    i.putExtra("ID", ID);
    /*i.putExtra("msg",msg);*/
    PendingIntent pendInt = PendingIntent.getActivity(context, 0, i, 0);
    Notification notif = new Notification(R.drawable.notify,"Receiving SMS",System.currentTimeMillis());
    NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    notif.setLatestEventInfo(context, "SMS", msg, pendInt);
    notif.flags |= Notification.DEFAULT_ALL;
    notif.flags |= Notification.DEFAULT_VIBRATE;
    notif.flags |= Notification.DEFAULT_LIGHTS;
    notif.flags |= Notification.FLAG_AUTO_CANCEL;       
    notif.ledARGB = Color.WHITE;                         
    notif.ledOnMS = 1500;                         
    notif.ledOffMS = 1500;      
    nm.notify(ID, notif);
}

这是 NotificationView 类的代码。

public void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);
    setContentView(R.layout.notificationview);
    txtNotify = (TextView)findViewById(R.id.txtNotification);
    ID = getIntent().getExtras().getInt("ID");
    /*txtNotify.setText(getIntent().getExtras().getString("msg"));*/
}

private View.OnClickListener txtClick = new View.OnClickListener() {    
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.txtNotification:
            NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            txtNotify.setText("");              
            nm.cancel(ID);          
            nm.cancelAll();
            NotificationView.this.startActivity(new Intent(NotificationView.this,ZigbeeActivity.class));
        }
    }
};
4

1 回答 1

0

为什么在下面的代码中使用管道(“|”)

notif.flags |= Notification.FLAG_AUTO_CANCEL; 

删除它并检查

notif.flags = Notification.FLAG_AUTO_CANCEL; 
于 2012-05-25T06:47:14.750 回答