在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),只会执行一次;同时在取消该通知时,唯一标识。



NotificationActivity.java,该类用于创建点击通知后的活动。
    
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"?>                                                                                            


这个功能封装的相当好了,如果有需要,多尝试几次就哦了。当然,通知中还有更加细节化的操作,用得着再学习吧。
Fighting!Fighting!Fighting!




更多相关文章

  1. [Android] IntentFilter-->Action、Category属性详解
  2. Android(安卓)UI组件学习
  3. Android属性动画特点详解
  4. Android动画开发
  5. 使用Leancloud实现React Native App的消息推送(Push Notification
  6. [Android]自定义组件示例:使用attrs.xml文件定制RadioButton
  7. Intent.FLAG_ACTIVITY_NEW_TASK和android:taskAffinity
  8. Android(安卓)属性
  9. Android(安卓)列表中设置Button后setOnItemClickListener失效问

随机推荐

  1. android aidl调用进程间服务的方法
  2. 地图定位
  3. Android之使用Http协议实现文件上传功能
  4. Android实现读写SD卡
  5. Android(安卓)点亮屏幕
  6. Android(安卓)colors.xml 颜色配置文件
  7. Android(安卓)常用控件自定义样式RadioBu
  8. 自定义RatingBar/SeekBar,重载样式
  9. android中listView实现异步加载网络图片
  10. could not write file\android-7\/syst