Android Notification显示通知的两种方法
Android Notification显示通知的两种方法
第一种显示通知的方法:
- /**
- * notification
- *
- * @param id
- */
- private void showNotification()
- {
- RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar);
- views.setImageViewResource(R.id.icon, R.drawable.fm_icon);
- views.setTextViewText(R.id.fm_run, getString(R.string.fm_run));
- Notification status = new Notification();
- status.contentView = views;
- status.flags |= Notification.FLAG_ONGOING_EVENT;
- status.icon = R.drawable.ic_fm_status_bar;
- status.contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, FMEntryView.class).addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT), 0);
- startForeground(PLAYBACKSERVICE_STATUS, status);
- }
删除通知:
- /**
- * delete notification
- */
- private void deleteNotification()
- {
- NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- nm.cancel(PLAYBACKSERVICE_STATUS);
- stopForeground(true);
- }
第二种显示通知的方法:
- public void showNotification(int icon,String tickertext,String title,String content){
- //设置一个唯一的ID,随便设置
- //Notification管理器
- Notification notification=new Notification(icon,tickertext,System.currentTimeMillis());
- //后面的参数分别是显示在顶部通知栏的小图标,小图标旁的文字(短暂显示,自动消失)系统当前时间(不明白这个有什么用)
- notification.defaults=Notification.DEFAULT_ALL;
- //这是设置通知是否同时播放声音或振动,声音为Notification.DEFAULT_SOUND
- //振动为Notification.DEFAULT_VIBRATE;
- //Light为Notification.DEFAULT_LIGHTS,在我的Milestone上好像没什么反应
- //全部为Notification.DEFAULT_ALL
- //如果是振动或者全部,必须在AndroidManifest.xml加入振动权限
- PendingIntent pt=PendingIntent.getActivity(this, 0, new Intent(this,main.class), 0);
- //点击通知后的动作,这里是转回main 这个Acticity
- notification.setLatestEventInfo(this,title,content,pt);
- nm.notify(notification_id, notification);
- }
- //showNotification(R.drawable.home,"图标边的文字","标题","内容");
删除通知:
- nm.cancel(notification_id);
上面此法别忘了增加权限:
- <-permission android:name="android.permission.VIBRATE" /> <!-- 允许振动 -->
更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11
评论暂时关闭