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
62package 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/