Android中的通知notification
来源:互联网 发布:梯度下降算法迭代 编辑:程序博客网 时间:2024/05/18 05:49
有时候我们在玩QQ,或者其他的一些功能时候,在我们的手机上面会出现一些通知。类似于下面的。
创建一条基本的通知
android中如何实现自己定义的通知呢?其实非常的简单,它是我们手机里面的的一个服务。我们只要开启这种服务就可以了。下面代码演示一个最简单的通知,效果图如上。
新建一个项目NotificationTest,然后在布局文件当中定义一个按钮用于发送一个通知。代码如下。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void doClick(View view){ switch (view.getId()) {case R.id.send:NotificationManager manager; //取得发送通知的管理器 manager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //创建一个通知 Notification notification=new NotificationCompat.Builder(MainActivity.this) .setContentTitle("通知的标题") .setContentText("通知的内容") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.drawable.ic_launcher) .build(); //通过管理器发送通知 manager.notify(1, notification);break;} } }首先拿到我们的通知管理器在我们系统服务当中,然后定义我们的通知设置了一些基本的属性,最后通过通知管理器发送我们的自定义的通知。就是这么简单。
为通知添加点击事件
这个例子太简单了。有时候我们的通知还需要可点击的。就相当于我们的QQ里面的通知,当有一条聊天信息的通知的时候,我们点进去这个通知,会直接进入相应的聊天界面。接下来就实现这个功能。
首先我们新建一个SecondActivity,当我们点击我们的通知后,就跳转到当前这个Activity。既然要调转了,就需要Intent。当时这里使用的PendingIntent。他可以简单地理解为延迟的Intent。意思就是不立即跳转,需要一段时间之后再去跳转。
case R.id.send:NotificationManager manager; //取得发送通知的管理器 manager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Intent intent=new Intent(MainActivity.this,SecondActivity.class); PendingIntent pi=PendingIntent.getActivity(MainActivity.this, 0, intent,0); //创建一个通知 Notification notification=new NotificationCompat.Builder(MainActivity.this) .setContentTitle("通知的标题") .setContentText("通知的内容") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.drawable.ic_launcher) .setContentIntent(pi) .build(); //通过管理器发送通知 manager.notify(1, notification);break;}三行代码就可以实现上面下面的效果。
取消通知
接下来的问题又来了,我们发现当我们点击了我们通知之后,的确进入到了我们第二个界面。注意观察上面的通知却没有消失。怎么办呢?一句话就解决了。
我们只需要在创建我们的通知的时候,增加一句话就要好了。
.setAutoCancel(true)为通知增加声音、振动、闪烁
有时候我们的通知来的时候,会震动一下,并伴随着声音,并且我们的手机的前置的灯会闪一下,由于这个效果需要真机模拟。你可以在下面使用自己的手机测试一下。
.setVibrate(new long[]{0,1000,1000,1000})//立刻振动1秒,静止1秒,再振动1秒 .setLights(Color.BLUE, 1000, 1000)//亮起时1秒,灭时1秒 .setSound(Uri.fromFile(new File("声音的路径")))由于需要震动,我们需要在我们的配置文件当中添加权限
<uses-permission android:name="android.permission.VIBRATE"/>自定义风格
有时候在我们的通知当中,内容比较多。显示不完全。但是我们又想完全显示我们的内容。这时候我们就可以自定义风格。在里面可以把我们的内容换成图片,长文字等等,甚至是我们自定义的布局。
.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)))这里我们演示一下把我们内容换成图片
大概就是这么多。你也可以根据API,自己查询,需要什么使用什么。
- Android中的通知Notification
- Android中的Notification(通知)
- Android中的通知Notification
- Android中的通知Notification
- Android中的通知 --- Notification
- Android中的通知 Notification
- Android中的通知Notification
- android中的通知Notification
- Android中的通知Notification
- android中的通知Notification
- Android中的通知notification
- Android中的通知Notification
- Android中的通知—Notification
- Android中的通知—Notification
- Android中的通知—Notification .
- Android中的通知—Notification
- Android 中的消息通知Notification
- Android中的通知—Notification
- php设计模式之四__观察者模式
- sqlite3移植
- python读取有中文文件时的报错处理
- java类成员初始化顺序
- Fibonacci法的matlab实现
- Android中的通知notification
- Spring集成Junit4单元测试
- C++
- 1020. Tree Traversals (25)
- 求最大连续bit数
- 字符串 挑出 字符串
- 机器学习面临的挑战和解决方法
- Android中圆形图的几种实现方式
- 简单的排障 - load高