效果描述:当点击发送消息的时候,系统通知栏会有新消息提醒,当点击消息时,会跳转到另一个Activity布局。
代码部分:
Xml文件代码:activity_main:
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context="com.example.third_five_notification_android.MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_send"
android:textSize="20sp"
android:text="发送通知"/>
<Button
android:layout_marginTop="35dp"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_cacle"
android:text="取消发送"/>
</LinearLayout>
自定义一个跳转的Activity:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="你被骗了\n\n哈哈"
android:textColor="#ee0909"
android:textSize="65sp"
android:gravity="center"/>
</LinearLayout>
下面是MainActivity代码:
package com.example.third_five_notification_android;
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.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
NotificationManager manger;
int notification_id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manger = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
findViewById(R.id.bt_send).setOnClickListener(this);
findViewById(R.id.bt_cacle).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.bt_send:
sendNotification();
break;
case R.id.bt_cacle:
cacleNotification();
break;
}
}
private void sendNotification() {
Intent intent = new Intent(MainActivity.this,ItemActivity.class);
PendingIntent pand = PendingIntent.getActivity(this,0,intent,0);
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.aim);//设置图标
builder.setTicker("你有一条新消息");//手机状态栏通知
builder.setWhen(System.currentTimeMillis());//获取系统时间
builder.setContentTitle("通知栏通知");//设置标题
builder.setContentText("恭喜你中500万大奖");//通知消息内容
builder.setContentIntent(pand);//点击之后的意图
// builder.setDefaults(Notification.DEFAULT_LIGHTS);//设置指示灯
// builder.setDefaults(Notification.DEFAULT_SOUND);//设置声音
// builder.setDefaults(Notification.DEFAULT_VIBRATE);//设置震动
builder.setDefaults(Notification.DEFAULT_ALL);//设置全部效果
//Notification notification = builder.build();//安卓4.0以上手机使用
Notification notification = builder.getNotification();
manger.notify(notification_id,notification);
}
private void cacleNotification() {
manger.cancel(notification_id);
}
}
关联自定义的activity布局需要写一个Activity类关联,当然千万不要忘记在AndroidManifest中注册一下,比较简单,这里就不展示AndroidManifes的代码了
package com.example.third_five_notification_android;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
public class ItemActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.item_layout);
}
}