Android 使用Notification进行消息提示
2016-03-25 11:21
501 查看
一.概述
今天来讲讲Notification的使用,先看效果图。二.代码
首先是布局文件,我们定义三个按钮<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical" android:gravity="center" tools:context="com.example.notificationdemo.MainActivity"> <Button android:id="@+id/normal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="发送普通通知" /> <Button android:id="@+id/custom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送自定义通知" android:onClick="click" /> <Button android:id="@+id/dismiss" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="取消通知" /> </LinearLayout>
接下来看主要代码,我会给出比较详细的注释:
public class MainActivity extends AppCompatActivity { private NotificationManager manager; private static final int NOTIFYID = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取通知服务 manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); } public void click(View view){ switch (view.getId()){ case R.id.normal: sendNormalNotification(); break; case R.id.custom: sendCustomNotification(); break; case R.id.dismiss: // manager.cancel(NOTIFYID);//根据通知id取消对应的通知 manager.cancelAll();//取消所有的通知 break; } } /** * 发送普通通知 */ public void sendNormalNotification(){ Notification.Builder builder = new Notification.Builder(this); builder.setTicker("消息来了");//设置提示消息 builder.setContentText("今天出去吃饭吧");//通知内容 builder.setContentTitle("提示");//通知标题 builder.setSmallIcon(R.mipmap.head);//提示消息旁边的小图标 builder.setNumber(2);//设置右边显示的数字 builder.setOngoing(true);//是否可以滑动移除通知,true代表可以 builder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher));//设置大图标 Notification notify = builder.build(); //点击通知启动的页面 Intent intent = new Intent(this,MessageActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); //启动通知 manager.notify(NOTIFYID,notify); } /** * 自定义通知 */ public void sendCustomNotification(){ Notification.Builder builder2 = new Notification.Builder(this); builder2.setTicker("开始下载"); builder2.setSmallIcon(R.mipmap.ic_launcher); builder2.setWhen(System.currentTimeMillis()); //第一个参数为包名。第二个参数为通知布局 RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.cunstom_layout); builder2.setContent(remoteViews); Notification notify = builder2.build(); manager.notify(1,notify); } }
源码下载
相关文章推荐
- Android的线程池简单说明
- Android Fragment 真正的完全解析(上)
- Android apk 混淆,加密,加壳 介绍
- IOS android 2个类之间的传值
- android studio下载
- android 6.0(23)的权限管理
- Android 自定义SeekBar背景样式
- android中衡量一个APK性能的方法(fps、cpu、内存、gpu、io参数)
- android JNI 开发配置
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- android:使用RemoteView自定义Notification
- Android 中的 Service 全面总结
- android之animation解析一
- AndroidStudio svn主干和分支代码进行合并
- Android下数据库的操作应用(三)
- Android的PopWindow动画实现
- 阅读Android源码的一些姿势
- Android 报错记录
- 160多个android开源代码汇总
- Android进阶之首页广告轮播效果