zoukankan      html  css  js  c++  java
  • Notification发送通知

    今天学习并測试了Notification组件,这个组件在应用中也经经常使用到。在这里写了一个简单的Demo。

    Notification是显示在状态栏的消息----位于手机屏幕的最上方。
    程序一般通过NotificationManager服务来发送Notification。


    Notification发送Notification的步骤
    1、调用getSystemService(NOTIFICATION_SERVICE)方法获取系统
    NotificationManager服务
    2、通过构造器创建一个Notification对象
    3、为Notification设置各种属性
    4、通过NotificationManerger发送Notification


    在AndroidManifest.xml文件里设置权限:

     <!-- 设置闪光灯权限-->
        <uses-permission android:name="android.permission.FLASHLIGHT"></uses-permission>
        <!--设置震动权限-->
        <uses-permission android:name="ANDROID.PERMISSION.VIBRATE"></uses-permission>

    xml文件:

    <RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    <Button
        android:id="@+id/startNotify"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开启通知"
        />
        <Button
            android:id="@+id/stopNotify"
            android:layout_width="wrap_content"
            android:layout_toRightOf="@+id/startNotify"
            android:layout_height="wrap_content"
            android:text="关闭通知"/>
    </RelativeLayout>
    
    MainActivity.java

    package lzl.edu.com.notificationtest;
    
    import android.app.Activity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends Activity implements View.OnClickListener{
    
        private static final int NOTIFICATION = 1;
        Button startNotify,stopNotify;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            startNotify =(Button)findViewById(R.id.startNotify);
            stopNotify=(Button)findViewById(R.id.stopNotify);
            startNotify.setOnClickListener(this);
            stopNotify.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.startNotify:
                    Intent intent = new Intent(MainActivity.this,NextActivity.class);
                    PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                    //创建一个Notification
                    Notification notification = new Notification();
                    //为Notification设置图标
                    notification.icon = R.mipmap.ic_launcher;
                    //设置文本内容
                    notification.tickerText="启动还有一个应用的通知";
                    //设置发送年时间
                    notification.when = System.currentTimeMillis();
                    //设置声音
                    notification.defaults = notification.DEFAULT_SOUND;
                    //设置默认声音、震动、闪光灯
                    notification.defaults=notification.DEFAULT_ALL;
                    notification.setLatestEventInfo(MainActivity.this,"一条应用的通知","点击查看",pi);
                    //获取系统的NotificationManerger服务
                    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
                    notificationManager.notify(NOTIFICATION,notification);
                    break;
                case R.id.stopNotify:
                    NotificationManager notificationManager1 = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
                        notificationManager1.cancel(NOTIFICATION);
                    break;
                default:break;
            }
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    
    }
    



  • 相关阅读:
    linux系列之-—03 压缩和解压缩命令
    Atlassian Confluence安装
    常见ODBC及OLEDB连接串的写法
    windows 怎么验证域名是否开启了 https
    Jenkins基础篇 系列之-—05 集成JIRA
    SVN系列之—-SVN版本回滚的办法
    JMeter 系列之—-02 创建数据库测试计划
    golang web框架 beego 学习 (一) 环境搭建
    补充 3:Golang 一些特性
    补充 1: panic 、recover、 defer
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7184107.html
Copyright © 2011-2022 走看看