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>

  

          

    

    

 

  

原文地址:https://www.cnblogs.com/haojiahong/p/4586533.html