下拉通知notifacation练习
案例:
点击之后弹出详情
- 编写布局文件,一个进入的页面,一个下拉之后点进去的页面。添加一个ImageView即可
- 创建detail界面就是点击详情之后显示的界面,这个里面代码基本上不用编写
- 在MainActivity中编写通知
项目目录:
detail:
package com.example.acer.wechattab;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class detail extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
}
}
MainActivity:
- 创建一个通知对象
- 设置通知打开后,自动消失
- 设置通知图标
- 设置通知内容的标题
- 设置通知内容
- 设置发送时间
- 设置声音和震动
- 创建一个启动详细页面的Intent
- 创建pending intent 可以由其他的应用程序在稍晚的时间触发的intent机制,在点击详细内容的时候再触发
- 设置通知栏点击跳转
- 发送通知
- 设置通知id
package com.example.acer.wechattab;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
final int NOTIFYID = 0x123; //通知id
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建并发送通知
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder notification = new Notification.Builder(MainActivity.this);//创建一个通知对象
notification.setAutoCancel(true); //设置通知打开后,自动消失
notification.setSmallIcon(R.drawable.packet); //设置通知图标
notification.setContentTitle("新年快乐,恭喜发财!!!"); //设置通知内容的标题
notification.setContentText("点击查看详情!"); //设置通知内容
notification.setWhen(System.currentTimeMillis()); //设置发送时间
notification.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); //设置声音和震动
//创建一个启动详细页面的Intent
Intent intent = new Intent(MainActivity.this, detail.class);
//创建pending intent 可以由其他的应用程序在稍晚的时间触发的intent机制
//在点击详细内容的时候再触发
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
notification.setContentIntent(pi); //设置通知栏点击跳转
notificationManager.notify(NOTIFYID, notification.build());//发送通知
}
}