Notification,Android中通知的使用
来源:互联网 发布:北京滑雪场 知乎 编辑:程序博客网 时间:2024/05/16 23:57
在Android中,我们往往会被通知吸引去打开某个App。通知可以在活动中创建,在广播中创建,也可以在服务里创建。这篇文章简单的介绍了通知的使用。
效果图
可以看见,在标题栏中有一个自定义的通知。
当我们点击该通知时,会进入到一个新的Activity,如下:
源代码
MainActivity.java,这个类主要用于创建通知,以及设置通知的各个属性。
package com.example.notificationtest;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.graphics.Color;import android.net.Uri;import android.provider.Settings;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import java.io.File;public class MainActivity extends AppCompatActivity { private Button sendNotice; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sendNotice = (Button)findViewById(R.id.send_notice); sendNotice.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); Intent intent = new Intent(MainActivity.this,NotificationActivity.class); PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);//设置好pi Uri Sounduri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tong.ogg")); long[] vibrates = {0,1000,1000,1000}; Notification notification = new Notification.Builder(getApplicationContext()) .setContentTitle("this is first,我是标题") .setContentText("this is second,我告诉你哦") .setSmallIcon(R.mipmap.ic_launcher) .setTicker("ticker text") .setContentIntent(pi) .setSound(Sounduri) .setVibrate(vibrates) .build(); notification.ledARGB = Color.GREEN; notification.ledOnMS = 1000; notification.ledOffMS = 1000;// notification.defaults = Notification.DEFAULT_ALL; manager.notify(1,notification); } }); }}
上面的类囊括了创建一个通知的主要功能。该流程大体如下:
1、创建管理通知的,NotificationManager
2、设置一个notification的各个属性
3、利用manager,启动一个通知。
关于通知的细节:
1、ticker是当通知出现时候,会在顶端有一个介绍,就像我们用QQ,当某人发来信息的时候,会出现"您有一条新的信息"字样。
2、利用PendingIntent来创建点击通知后的动作。
3、我们可以设置通知出现时,手机发出的声音以及震动的频率、LED等闪烁等,个人喜欢用它的DEFAULT属性就一键搞定了(注释部分)。
4、notify中的1,唯一标识了该通知,它既保证了调用多次notify(1,notification),只会执行一次;同时在取消该通知时,唯一标识。
package com.example.notificationtest;import android.app.Notification;import android.app.NotificationManager;import android.os.Bundle;import android.os.PersistableBundle;import android.support.v7.app.AppCompatActivity;/** * 项目名称:NotificationTest * 类描述: * 创建人:吴乐 * 创建时间:2016/4/20 20:15 * 修改人:吴乐 * 修改时间:2016/4/20 20:15 * 修改备注: */public class NotificationActivity extends AppCompatActivity{ /** * @param savedInstanceState */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.notification_layout); NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); manager.cancel(1); }}这里唯一需要注意的是在cancel时,只对标识为1的通知进行操作。
该通知用到了震动以及一个新的活动,所以需要修改Manifest。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.notificationtest"> <uses-permission android:name="android.permission.VIBRATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NotificationActivity" /> </application></manifest>
这个功能封装的相当好了,如果有需要,多尝试几次就哦了。当然,通知中还有更加细节化的操作,用得着再学习吧。
Fighting!Fighting!Fighting!
1 0
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- android中通知栏notification的使用
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Android中通知的使用-----Notification详解
- Notification,Android中通知的使用
- Android中通知的使用-----Notification详解
- Android中Notification 通知的使用
- Android中Notification 通知的使用
- Android中使用通知Notification
- android通知(Notification)的使用
- android Notification(通知) 的使用
- Android通知Notification的使用
- 利用组策略限制程序运行
- bat
- ListView出现数据重复的问题的解决
- 数据结构-堆的应用-海量数据
- 使用Java实现折半查找
- Notification,Android中通知的使用
- c# 匿名方法
- 问题解决:在非主Activity中无法退出应用程序,只能返回上一个Activity
- VS2015 Xamarin- ios程序真机调试
- 每天一点Linux-Makefile
- 用两个栈实现队列的操作
- 数据结构-堆排序
- 机器学习总结3_朴素贝叶斯
- 关于ToolBar的一点理解