zoukankan      html  css  js  c++  java
  • Android_Notification

    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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.notificationdemo.MainActivity" >
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center_horizontal"
            >
            <Button 
                android:id="@+id/send_btn"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="send Message"/>
            <Button 
                android:id="@+id/cancel_btn"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="cancel Message"
                />
        </LinearLayout>
    </RelativeLayout>

    源代码:

    package com.example.notificationdemo;
    
    import android.app.Activity;
    import android.app.Notification;
    import android.app.Notification.Builder;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    /**
     * Notification是显示在手机状态栏的消息(手机状态栏位于手机最顶端),代表一种全局效果的通知 通知栏的内容:图标,标题,内容,时间,点击后响应
     * 如何实现通知栏: 获取notificationManager 显示通知栏:notify(id,notification) 取消通知栏:cancel(id)
     * 构造Notification并设置显示内容 通知栏通知可以设置声音提示,指示灯以及震动效果,后两者注意需添加权限
     * 
     * 
     * @author Administrator
     *
     */
    public class MainActivity extends Activity implements OnClickListener {
    
        private Button send;
        private Button cancel;
        private NotificationManager manager;
        private int NOTIFICATION_ID;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            send = (Button) findViewById(R.id.send_btn);
            cancel = (Button) findViewById(R.id.cancel_btn);
            send.setOnClickListener(this);
            cancel.setOnClickListener(this);
            manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//系统常用服务
        }
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.send_btn:
                sendNotification();
                break;
            case R.id.cancel_btn:
                manager.cancel(NOTIFICATION_ID);//取消发送的通知
                break;
            }
        }
    
        /**
         * 构造notification并发送到通知栏
         */
        private void sendNotification() {
            // TODO Auto-generated method stub
            Intent intent = new Intent(this, MainActivity.class);
            PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0);
            Builder builder = new Notification.Builder(this);
            builder.setSmallIcon(R.drawable.ic_launcher);// 设置图标
            builder.setTicker("hello");// 设置手机状态栏的提示
            // 拖拽开手机状态栏提示的内容
            builder.setWhen(System.currentTimeMillis());// 设置时间
            builder.setContentTitle("通知");// 设置标题
            builder.setContentText("内容");// 设置内容
            builder.setContentIntent(pintent);// 设置点击之后的响应,意图
    
            /*
             * builder.setDefaults(Notification.DEFAULT_SOUND);//设置声音
             * builder.setDefaults(Notification.DEFAULT_LIGHTS);//设置指示灯
             * builder.setDefaults(Notification.DEFAULT_VIBRATE);//设置震动
             */
            builder.setDefaults(Notification.DEFAULT_ALL);
            Notification notification = builder.getNotification();// 4.1以下
            // builder.build();//4.1及以上
            manager.notify(NOTIFICATION_ID, notification);//发送通知到通知栏
        }
    
    }
  • 相关阅读:
    HTTP协议一次上传多个文件的方法
    PHP中include和require的区别
    jenkins持续集成工具
    vue加强(第二天)
    VUE(第一天)
    mybatis的SQL映射(加强)
    easyPOI的上传和下载(导入和导出功能)
    shiro登录授权框架
    SpringDataJPA(ORM对象关系映射框架)
    SpringSpringMVCJPA集成
  • 原文地址:https://www.cnblogs.com/fangg/p/5583696.html
Copyright © 2011-2022 走看看