Android Studio notification

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<Button
    android:id="@+id/bt"
    android:text="发送信息"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"></Button>
    <Button
        android:id="@+id/bt2"
        android:text="分组"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button>
    <Button
        android:id="@+id/bt3"
        android:text="很多"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button>
    <Button
        android:id="@+id/bt4"
        android:text="交互信息"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button>

    <Button
        android:id="@+id/bt5"
        android:text="更新信息"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button>

</LinearLayout>
package com.example.day3;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    
    
    private Button bt1,bt2,bt3,bt4,bt5;
 private long time=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1=findViewById(R.id.bt);
        bt2=findViewById(R.id.bt2);
        bt3=findViewById(R.id.bt3);
        bt4=findViewById(R.id.bt4);
        bt5=findViewById(R.id.bt5);
        bt1.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                textbr();
            }
        });
        bt2.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                textbr2();
            }
        });
        bt3.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                textbr3();
            }
        });
        bt4.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                textbr4();
            }
        });
        bt5.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                textbr5();
            }
        });

    }

    private void textbr5() {
    
    

        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.cancel(1);
    }

    private void textbr4() {
    
    
        Notification.Builder builder=new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("标题");
        builder.setContentText("内容");
        builder.setWhen(System.currentTimeMillis());
        builder.setAutoCancel(true);
        //交互通知。
        Intent intent1=new Intent(MainActivity.this,Main2Activity.class);
        PendingIntent act= PendingIntent.getActivity(this,0,intent1,0);
        builder.setContentIntent(act);

        builder.setDefaults(Notification.DEFAULT_ALL);
        builder.setPriority(Notification.PRIORITY_MAX);
        Notification b=builder.build();
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.notify(1,b);
    }

    private void textbr3() {
    
    
        Notification.Builder builder=new Notification.Builder(this);
//大图通知
        Notification.BigPictureStyle bigPictureStyle=new Notification.BigPictureStyle();
        bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher));
        builder.setStyle(bigPictureStyle);


        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("标题");
      //多个消息
        Notification.InboxStyle inboxStyle=new Notification.InboxStyle();
        inboxStyle.addLine("adas");
        inboxStyle.addLine("adas");
        inboxStyle.addLine("adas");
        builder.setStyle(inboxStyle);

        Notification b=builder.build();
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.notify(1,b);
    }
    //多消息通知
    private void textbr2() {
    
    
        Notification.Builder builder1=new Notification.Builder(this);
        Notification.Builder builder2=new Notification.Builder(this);
        Notification.Builder builder3=new Notification.Builder(this);
        builder1.setSmallIcon(R.mipmap.ic_launcher);
        builder1.setContentTitle("标题1");
        builder1.setContentText("内容1");
        builder2.setSmallIcon(R.mipmap.ic_launcher);
        builder2.setContentTitle("标题2");
        builder2.setContentText("内容2");
        builder3.setSmallIcon(R.mipmap.ic_launcher);
        builder3.setContentTitle("标题3");
        builder3.setContentText("内容3");
        builder1.setGroup("1");
        builder1.setGroupSummary(true);
        builder2.setGroup("1");
        builder2.setGroupSummary(true);
        builder3.setGroup("1");

        Notification b1=builder1.build();
        Notification b2=builder2.build();
        Notification b3=builder3.build();
        NotificationManager manager1 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationManager manager2 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationManager manager3 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager1.notify(1,b1);
        manager2.notify(2,b2);
        manager3.notify(3,b3);

    }
//普通通知
    private void textbr() {
    
    

        Notification.Builder builder=new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("标题");
        builder.setContentText("内容");

        builder.setWhen(System.currentTimeMillis());
        builder.setAutoCancel(true);

        builder.setVisibility(Notification.VISIBILITY_PUBLIC);
        builder.setDefaults(Notification.DEFAULT_ALL);
        builder.setPriority(Notification.PRIORITY_MAX);

        Notification b=builder.build();
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.notify(1,b);

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    
    
        if(keyCode==event.KEYCODE_BACK){
    
    
            if(System.currentTimeMillis()-time>2000){
    
    
                Toast.makeText(this, "在按一下提出", Toast.LENGTH_SHORT).show();
               time=System.currentTimeMillis();
              return  true;
            }else {
    
    
                finish();
            }
        }


        return super.onKeyDown(keyCode, event);

    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity">
   <Button
       android:id="@+id/btt"
       android:text="进度条"
       android:onClick="onbt"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"></Button>
</LinearLayout>
```package com.example.day3;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.app.NotificationManager;
import android.os.Bundle;
import android.view.View;

import java.util.Timer;
import java.util.TimerTask;

public class Main2Activity extends AppCompatActivity {
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
//进度条通知。
    public void onbt(View view) {
    
    
        final NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        final Notification.Builder builder=new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("下载中....");

        final  Timer timer=new Timer();
        timer.schedule(new TimerTask(){
    
    
            int  pro=0;
            @Override
            public void run() {
    
    
                builder.setContentTitle("下载中...."+pro);
           builder.setProgress(100,pro,false);
           pro+=10;
           manager.notify(1,builder.build());
           if(pro>=100){
    
    
               builder.setProgress(0,0,true);
               builder.setContentTitle("安装中....");
               manager.notify(1,builder.build());
               try {
    
    
                   Thread.sleep(3000);
               } catch (InterruptedException e) {
    
    
                   e.printStackTrace();
               }
               manager.cancel(1);
               timer.cancel();
           }
            }
        },0,1000);
        Notification build = builder.build();
        manager.notify(1, build);
    }
}
动画
在res 文件在创造anim 在在anim中创造两个.xml

Guess you like

Origin blog.csdn.net/mynameisluowei/article/details/108576245