Android的普通通知和进度条通知

xiaoxiao2021-02-28  85

显示进度的核心方法 setProgress() , 正如一般使用中所见,有显示进度百分比的进度条和普通的通知显示;

public class MainActivity extends AppCompatActivity {

private NotificationManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到通知的管理类 manager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } //进度条的通知 private void initView1() { final Notification.Builder builder=new Notification.Builder(this); builder.setContentTitle("进度条");//通知的标题 builder.setContentText("正在加载中.....");//通知的正文

builder.setSmallIcon(R.mipmap.ic_launcher);//通知的设置图片 没有图片不能运行程序

// 新建一个后台线程,来完成进度条的更新

new Thread(){ @Override public void run() { for (int i = 0; i <=100 ; i+=10) { builder.setProgress(100,i,false); manager.notify(2,builder.build()); try { Thread.sleep(400);//睡眠400毫秒 } catch (InterruptedException e) { e.printStackTrace(); } } //通过NotificationManager来发送通知,第一个参数是id(通知的唯一表示)第二个参数builder.build()得到通知的对象 builder.setContentText("加载完成"); //得到PendingIntent(延迟意图)的对象 PendingIntent pi=PendingIntent.getActivity(MainActivity.this,11,new Intent(MainActivity.this,Main2Activity.class),PendingIntent.FLAG_CANCEL_CURRENT); builder.setContentIntent(pi); //点击通知是否自动消失 该方法与PendingIntent一起使用才有效 builder.setAutoCancel(true); //通过NotificationManager来发送通知,第一个参数是id(通知的唯一表示)第二个参数builder.build()得到通知的对象 manager.notify(2,builder.build()); } }.start();//启动线程 } //普通的通知 private void initView() { Notification.Builder builder=new Notification.Builder(this);//得到通知的构造器 builder.setContentTitle("标题");//通知的标题 builder.setContentText("提示的内容");//通知的正文 builder.setSmallIcon(R.mipmap.ic_launcher);//通知的设置图片 没有图片不能运行程序 //得到PendingIntent(延迟意图)的对象 PendingIntent pi=PendingIntent.getActivity(this,10,new Intent(MainActivity.this,Main2Activity.class),PendingIntent.FLAG_CANCEL_CURRENT); builder.setContentIntent(pi); //点击通知是否自动消失 该方法与PendingIntent一起使用才有效 builder.setAutoCancel(true); //通过NotificationManager来发送通知,第一个参数是id(通知的唯一表示)第二个参数builder.build()得到通知的对象 manager.notify(1,builder.build()); } @RequiresApi(api = Build.VERSION_CODES.M) //按钮的点击事件 public void onClick(View view) { switch (view.getId()){ case R.id.button1: initView(); break; case R.id.button2: initView1(); break; } }

}

转载请注明原文地址: https://www.6miu.com/read-57915.html

最新回复(0)