Android实验3-2

本文最后更新于:1 年前

实验内容

  • 使用 Intent 启动 Activity 的方法
  • 获取 Activity 返回值的方法
  • 发送和接收广播消息的方法

    实验目的和要求

  • 了解使用 Intent 进行组件通信的原理
  • 掌握使用 Intent 启动 Activity 的两种方式
  • 掌握获取 Activity 返回值的方法
  • 了解 Intent 过滤器的原理与匹配机制
  • 掌握发送和接收广播消息的方法

    实验步骤:

    1、创建lab3_2工程。
    2、在activity_main.xml中编写两个按钮,一个是发送广播消息,一个是清除通知图标。
    3、在Mainactivity.java文件中实现这两个按钮的方法。

    实验代码

    activity_main.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
    android:layout_marginTop="20dp"
    android:layout_marginLeft="30dp"
    android:id="@+id/send"
    android:textSize="25sp"
    android:text="发送广播消息"
    android:layout_width="wrap_content"
    android:layout_height="50dp">

    </Button>
    <Button
    android:id="@+id/clean"
    android:layout_marginLeft="30dp"
    android:textSize="25sp"
    android:layout_marginTop="20dp"
    android:text="清除通知图标"
    android:layout_width="wrap_content"
    android:layout_height="50dp">

    </Button>
    </LinearLayout>

    MainActivity.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    package com.example.lab32;

    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.NotificationCompat;

    import android.app.Notification;
    import android.app.NotificationChannel;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.graphics.BitmapFactory;
    import android.os.Build;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;

    public class MainActivity extends AppCompatActivity {
    Button send,clean;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    send=findViewById(R.id.send);
    clean=findViewById(R.id.clean);
    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    send.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {


    //8.0以后的通知渠道
    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
    NotificationChannel channel=new NotificationChannel("important","Important",NotificationManager.IMPORTANCE_HIGH);
    assert manager != null;
    manager.createNotificationChannel(channel);
    }
    //通知点击事项

    Notification notification= new NotificationCompat.Builder(MainActivity.this,"important")
    .setContentTitle(getString(R.string.app_name))
    .setContentText("2012020019 张志豪")
    .setWhen(System.currentTimeMillis())
    .setSmallIcon(R.mipmap.ic_launcher)
    .setAutoCancel(true)

    .setPriority(NotificationCompat.PRIORITY_MAX).build();
    assert manager != null;
    manager.notify(1,notification);


    }
    });
    clean.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    manager.cancel(1);


    }
    });
    }
    }

    问题讨论:

这个广播通知,之前大一时,写过一个类似的功能,直接拿来用了,没碰到什么问题,删除广播倒是没写过,查了一下方法,用.cancel方法,在取消按钮那里,写一个点击事件,点击时,实现这个取消功能。


Android实验3-2
http://example.com/2022/05/17/Android实验3-2/
作者
zzh
发布于
2022年5月17日
更新于
2022年5月17日
许可协议
原文链接: HTTPS://ZHANGZHIHAO-BLOG.GITHUB.IO
版权声明: 转载请注明出处!