zoukankan      html  css  js  c++  java
  • Notification的应用

      以前零零散散的学Android,回头一看啥都记不得了,心若在,梦就在,只不过是从头再来~这回好好慢慢的记录吧,学着慢点,忘得也慢啊最好。

      Notification,也就是手机上的通知栏,发送通知给手机。

      下面介绍

      Notification类。android.app.Notification

      这个类表述了如何使用NotificationManager类向用户展示一个持久化的通知。该类用于存放标题、内容、图标、以及发送的目标对象。

      Notification notif  = new Notification();

      此类常用的属性有:

        icon :通知的图标 notif.icon = R.drawable.android_launcher

        tickerText : 通知的标题

        flags:设置通知状态的标志值。

        defaults:设置通知的默认属性,包括声音,震动,闪光提示。

        contentIntent:存放一个PendingIntent类型的对象。点击通知的时候,才启动intent中的目标对象。

          PendingIntent用于描述Intent及其最终行为。此对象可以递交给其他应用程序,然后继续处理,这样可稍后处理PendingIntent中描述的Intent及其最终行为。

            常用方法:

              1、public static PendingIntent getActivity(Context context , int  requestCode , Intent intent , int flags);

              从系统中取得一个用去启动目标Activity的PendingIntent对象。

                flags: FLAG_CANCEL_CURRENT: 关闭当前的PendingIntent,新建一个pendingIntent。

                   FLAG_UPDATE_CURRENT: 更行当前PendingIntent对象中的数据。

                   默认为0即可

              2、public static PendingIntent getService(Context context , int  requestCode , Intent intent , int flags);

              3、public static PendingIntent getBroadcast(Context context , int  requestCode , Intent intent , int flags);

      实例:

      设置一个按钮,点击按钮发送一条通知:

    <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"
       >
    
        <Button
            android:id="@+id/btnSendNotification"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="发送通知" />
    
    </RelativeLayout>
    

      

    package com.example.notificationdemo;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setListener();
        }
    
    	private void setListener() {
    
    		findViewById(R.id.btnSendNotification).setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				//创建启动secondActivity的Intent对象。
    				Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    				//创建PendingIntent对象。
    				PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
    				//创建Notification对象。
    				Notification notif = new Notification(R.drawable.ic_launcher, "通知来了",System.currentTimeMillis());
    				//设置点击通知的监听
    				notif.setLatestEventInfo(MainActivity.this,  "您有软件需要更新", "点击更新", pi);
    				//创建通知管理器对象。
    				NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    				//发送通知。
    				manager.notify(99, notif);
    			}
    		});
    	}
    
    
    }
    

      设置了一个secondActivity,只对应一个点击通知内容后要显示的页面,测试PendingIntent。

    <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=".SecondActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="您点击了通知!" />
    
    </RelativeLayout>
    

      

              

        

        

     

      

  • 相关阅读:
    Flask莫名其妙特别慢
    MySQL老是提示视图没有主键
    Mysql写入中文出错
    Sqlite向MySql导入数据
    大智慧专业财务PFFIN(N,M)函数N的取值一览表
    js的技巧
    拍拍贷年化收益率的推算
    Sqlite的多表连接更新
    Kali Linux 64位架构安装Veil-Evasion
    修改Kali Linux 2020.1主题颜色
  • 原文地址:https://www.cnblogs.com/haojiahong/p/4586533.html
Copyright © 2011-2022 走看看