Android通知Notification的功能与用法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_31955775/article/details/52475081

加薪通知

public class MainActivity extends Activity {

    static final int NOTIFICATION_ID = 0x123;
    NotificationManager nm;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取系统的NotificationManager服务
        nm = (NotificationManager)
                getSystemService(NOTIFICATION_SERVICE);
    }
    // 为发送通知的按钮的点击事件定义事件处理方法
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public void send(View source)
    {
        // 创建一个启动其他Activity的Intent
        Intent intent = new Intent(MainActivity.this
                , OtherActivity.class);
        PendingIntent pi = PendingIntent.getActivity(
                MainActivity.this, 0, intent, 0);
        Notification notify = new Notification.Builder(this)
                // 设置打开该通知,该通知自动消失
                .setAutoCancel(true)
                // 设置显示在状态栏的通知提示信息
                .setTicker("有新消息")
                // 设置通知的图标
                .setSmallIcon(R.drawable.notify)
                // 设置通知内容的标题
                .setContentTitle("一条新通知")
                // 设置通知内容
                .setContentText("恭喜你,您加薪了,工资增加20%!")
                // 设置使用系统默认的声音、默认LED灯
                // .setDefaults(Notification.DEFAULT_SOUND
                // |Notification.DEFAULT_LIGHTS)
                // 设置通知的自定义声音
                .setSound(Uri.parse("android.resource://org.crazyit.ui/"
                        + R.raw.msg))
                .setWhen(System.currentTimeMillis())
                // 设改通知将要启动程序的Intent
                .setContentIntent(pi)  // ①
                .build();
        // 发送通知
        nm.notify(NOTIFICATION_ID, notify);
    }
    // 为删除通知的按钮的点击事件定义事件处理方法
    public void del(View v)
    {
        // 取消通知
        nm.cancel(NOTIFICATION_ID);
    }
}

pendingIntent是一种特殊的Intent。主要的区别在于Intent的执行立刻的,而pendingIntent的执行不是立刻的。pendingIntent执行的操作实质上是参数传进来的Intent的操作,但是使用pendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的。
主要的使用的地方和例子:通知Notificatio的发送,短消息SmsManager的发送和警报器AlarmManager的执行等等。

展开阅读全文

没有更多推荐了,返回首页