本章将介绍android notification通知显示并跳转到指定的Activity页面的事件,notification通知几乎是每一个android app都有的功能,该功能大大提高了app的开瓶率(抱歉,app不是啤酒),使用极其广泛,下面是notification通知的简单案例。
第一步:在activity_main.xml中添加一个发送通知的小按钮,代码如下。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.baidu.notificationdemo.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送通知" android:onClick="sendNotiClick"/> </RelativeLayout>
效果如图所示。
第二步:在MainActivity中实现sendNotiClick发送notification通知的点击事件,代码如下。
package com.baidu.notificationdemo; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.app.NotificationCompat; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //点击事件 public void sendNotiClick(View view){ //设置状态栏通知基本样式 NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle("通知的标题") .setContentText("Hello World!,你好吗?"); //添加通知的事件(点击跳转到指定页面SecondActivity) Intent resultIntent = new Intent(this,SecondActivity.class); //intent可以携带参数到指定页面的,这里省略 //resultIntent.putExtra(key,value); PendingIntent pendingIntent = PendingIntent.getActivity(this,0,resultIntent,PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(pendingIntent); //不同消息id设置不一样就好了 int notificationId = 001; NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); manager.notify(notificationId,mBuilder.build()); } }
点击通知按钮之后就会在android app的状态栏提示通知信息,如图。
当你点击消息内容的时候,会自动跳转到SecondActivity这个页面,SecondActivity这个页面我已经新建了,只是没有贴出来。