第一行安卓代码——使用通知8.2

原创 2017年02月03日 20:30:04

通知[Notification]是Android中比较有特色的功能,当某个应用程序希望给用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知实现。
这里写图片描述
使用通知的步骤

1、需要一个NotificationManager来获得
NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

2、使用builder模式[构造函数参数太多怎么办](http://www.importnew.com/6605.html)创建通知对象。

3、调用manager.notify(1, notification);

见代码:
布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/activity_main"
    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.hms.notificationtest.MainActivity">

   <Button
       android:id="@+id/send_notice"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Send notice"/>
</LinearLayout>

MainActivity

import android.app.Notification;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button sendNotice = (Button) findViewById(R.id.send_notice);
        sendNotice.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()) {
            case R.id.send_notice:
                NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
                Notification notification = new NotificationCompat.Builder(this)
                        .setContentTitle("This is content title")
                        .setContentText("This is content text")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
                        .build();
                manager.notify(1, notification);
                break;
            default:
        }
    }
}

这个通知是不能响应点击事件的,这个时候就用到了

PendingIntent

Intent更加倾向于立即去执行某个动作
而PendingIntent更加倾向于在某个合适的时机去执行某个动作
所以,也可以简单的把PendingIntent理解为延迟执行的Intent

新建一个NotificationActivity
然后改动如下

...
  case R.id.send_notice:
                Intent intent = new Intent(this, NotificationActivity.class);
                PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
...
...
.setContentIntent(pi)
...
.build()

点击通知后,图标不会自动消失,可以通过

...
.setAutocancle()
...
.build();

或者在NotificationActivity中用

NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
manager.cancle(1);//这里的1是id。也就是nofify(1, notificatiion)中的1

通知还可以在点击的时候设置音频、振动、LED灯等更多功能,都可以通过

setXXX();

实现。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TyroneRenekton/article/details/54849052

Convert an UNSIGNED byte to a JAVA type

In JAVA, a byte always considered as signed when converted to another type. We must mask the sign bi...
  • wxyxl
  • wxyxl
  • 2001-05-04 14:13:00
  • 684

第一行安卓代码

想学习安卓的同学,以后跟帖,我会每天不定时的去更新代码,QQ群:5521238311、首先我们得搭载环境: 我这里用的是eclipse+JDK1.7 下载地址360云盘: https://yun...
  • zhenliang5553
  • zhenliang5553
  • 2016-05-27 12:27:13
  • 2999

第一行代码-8.1 使用通知

1、通知的基本用法   先看看怎么创建一个通知事件。// NotificationTest-MainActivity.java private Button mBSendNotify; @Overr...
  • xiaoliizi
  • xiaoliizi
  • 2016-02-22 21:54:42
  • 529

《第一行代码》第八章 通知的使用(NotificationTest)

参考:第一行代码 第八章讲的是手机多媒体的应用。虽然很多人使用手机,但是大家并不知道为什么自带有很多程序。比如自带的多媒体应用。然后我们就可以使用这些多媒体编写更多,更高质量的应用!...
  • yinchaoji_
  • yinchaoji_
  • 2016-04-17 23:53:02
  • 534

《第一行代码--Android》读书笔记之使用通知和多媒体

使用通知(Notification) 我发现很多android系统的特色服务都是需要获得~Manager来管理的,比如LocalManager(获取定位服务),SensorManager(获取光照...
  • TellH
  • TellH
  • 2015-11-21 20:05:24
  • 829

第一行代码学习笔记---过时的通知写法

8.29更新—>关于通知的文章 http://blog.csdn.net/vipzjyno1/article/details/25248021 今天读到第一行那个代码365页的服务通知写法。发现里...
  • lw_zhaoritian
  • lw_zhaoritian
  • 2016-08-26 14:50:22
  • 1081

Android通知的用法(观第一行代码2随记)

emmm:一下为一个不成熟的示范。。。这是通知最基本的用法,通过Notification.Builder().build()来得到Notification(通知)的实例,然后NotificationM...
  • weixin_41336948
  • weixin_41336948
  • 2018-03-13 13:34:02
  • 16

关于《第一行代码》中安卓通知的修改

最近在学安卓,在看郭霖大神的第一行代码,其中通知章节中用到如下代码:Notification notification = new Notification(R.drawable.strawberry...
  • u014294160
  • u014294160
  • 2016-04-12 11:43:14
  • 389

第一行代码笔记 Notification通知

一:说明 通知用法比较灵活 ,可以在活动,广播,服务里创建。 示例 public class NotifiActivity extends AppCompatActivity implements ...
  • qq_30686255
  • qq_30686255
  • 2017-02-22 16:48:36
  • 115

第一行安卓代码 第2版

  • 2018年04月12日 18:51
  • 52.66MB
  • 下载
收藏助手
不良信息举报
您举报文章:第一行安卓代码——使用通知8.2
举报原因:
原因补充:

(最多只允许输入30个字)