<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.textmethod"> <uses-permission android:name="android.permission.FLASHLIGHT"></uses-permission> <uses-permission android:name="android.permission.VIBRATE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.TextMethod"> <activity android:name="com.texxt.MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.texxt.ContentActivity" android:label="详细内容" android:theme="@android:style/Theme.Dialog"/> </application> </manifest>
package com.texxt; import android.app.Activity; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.content.res.TypedArray; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Chronometer; import android.widget.Gallery; import android.widget.GridView; import android.widget.ImageButton; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.RatingBar; import android.widget.SeekBar; import android.widget.SimpleAdapter; import android.widget.TabHost; import android.widget.TextView; import android.widget.Toast; import android.widget.ViewSwitcher; import androidx.annotation.NonNull; import com.example.textmethod.R; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; public class MainActivity extends Activity { int[] img = new int[]{R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img1, R.drawable.img2, R.drawable.img3}; public Button message; public Button delete; int NOTIFYID_1 = 0x1; int NOTIFYID_2 = 0x2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); message = findViewById(R.id.message); delete = findViewById(R.id.delete); final NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); String id = "channel_1";//通道ID String name = "123";//通道描述属性 message.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int importanceHigh = NotificationManager.IMPORTANCE_HIGH;//提示声音控制 NotificationChannel notificationChannel = new NotificationChannel(id, name, importanceHigh); notificationChannel.setDescription(name); notificationChannel.enableLights(true); notificationChannel.enableVibration(true);//闪光灯 notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}); notificationManager.createNotificationChannel(notificationChannel); Notification notification = new Notification.Builder(MainActivity.this, id) .setContentTitle("这是通知的标题").setSmallIcon(R.drawable.img1) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.img2)) .setContentText("通知内容").setAutoCancel(true)//设置自动删除 .build(); notificationManager.notify(NOTIFYID_1, notification); Intent intent = new Intent(MainActivity.this, ContentActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0); Notification notification2 = new Notification.Builder(MainActivity.this, id)//创建Notification对象。 .setContentTitle("我是通知标题")//设置通知标题 .setSmallIcon(R.drawable.img1)//设置通知小图标 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.img2))//设置通知大图标 .setContentText("welcome to Android")//设置通知内容.setAutoCancel(true)//设置自动删除通知 .setContentIntent(pendingIntent) .build();//运行 notificationManager.notify(NOTIFYID_2, notification2);//通知栏保留多条通知 /* *API < 16* /第一步:创建通知构造器Notificationcompat.Builder对象。Notificationcompat.Builder builder=new Notificationcompat.Builder(getApplicationContext( ) , "default" ); //第二步:调用Notificationcompat.BuiLder对象的方法设置通知相关内容。buiLder.setSmalLIcon(R.drawable.ts_Logo);//设置通知小图标 builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.notification));//设置通知大图标 builder.setContentTitle(“我是通知标题");//设置通知标题 buiLder.setContentText( "weLcome to Android");//设置通知内容builder.setAutocanceL(true);//设置自动删除通知 Notification notification=buiLder.build();//:创建Notification对象。NotificationManager manager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); R通知栏管理器(得到系统服务) / /manager.notify(1,notification); l/通知栏保留单条通知 manager.notify((int) system.currentTimeMillis() , notification);//通知栏保留多 条通知 *╱ */ } }); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { notificationManager.cancel(NOTIFYID_1);//清除NOTIFYID_1通知 notificationManager.cancelAll();//清除全部通知 } }); } }