2023年7月7日发(作者:)
android之NotificationManager服务ificationManagerNotificationManager是⼀个Android系统服务,⽤于管理和运⾏所有通知。NotificationManager因为是系统服务,所以不能被实例化,为了把Notification传给它,可以⽤getSystemService()⽅法获取⼀个NotificationManager的引⽤。在需要通知⽤户时再调⽤notify()⽅法将Notification对象传给它。使⽤实例: NotificationManager notificationManager = (NotificationManager) temService(CATION_SERVICE); (id, ());不同android版本上通知功能Android 4.1(API 级别 16)引⼊了展开式通知模板(称为通知样式),可以提供较⼤的通知内容区域来显⽰信息。⽤户可以使⽤单指向上/向下滑动的⼿势来展开通知。Android 5.0(API 级别 21)引⼊了锁定屏幕和浮动通知。向 API 集添加了通知是否在锁定屏幕上显⽰的⽅法 (setVisibility()),以及指定通知⽂本的“公开”版本的⽅法。添加了 setPriority() ⽅法,告知系统该通知应具有的“⼲扰性”(例如,将其设置为“⾼”,可使该通知以浮动通知的形式显⽰)。Android 7.0(API 级别 24)⽤户可以使⽤内联回复直接在通知内回复(⽤户可以输⼊⽂本,然后将其发送给通知的⽗级应⽤)。Android 8.0(API 级别 26)现在必须将单个通知放⼊特定渠道中。⽤户现在可以按渠道关闭通知,⽽不是关闭应⽤的所有通知。包含活动通知的应⽤会在应⽤图标上⽅显⽰通知“标志”。(⼩圆点或数字)⽤户可以暂停抽屉式通知栏中的通知。您可以为通知设置⾃动超时。可以设置通知的背景颜⾊。通知式样介绍① ⼩图标:此为必要图标,通过 setSmallIcon() 设置。② 应⽤名称:此由系统提供。③ 时间戳:此由系统提供,不过您可以通过 setWhen() 进⾏替换,或使⽤ setShowWhen(false) 将其隐藏。④ ⼤图标:此为可选图标(通常仅⽤于联系⼈照⽚;请勿将其⽤于应⽤图标),通过 setLargeIcon() 设置。⑤ 标题:此为可选内容,通过 setContentTitle() 设置。⑥ ⽂本:此为可选内容,通过 setContentText() 设置。实战注意:实验过程中发现在模拟机上可以正常执⾏,但是真机却执⾏失败,最后发现真机上需要在设置⾥,打开通知的权限。思路:1. 创建渠道:在android8.0以上需要创建,以下不⽤创建2. 设置点击事件3. 构造Notification对象并显⽰通知代码:package tify;import patActivity;import cationCompat;import cation;import cationChannel;import cationManager;import gIntent;import t;import ;import Factory;import ;import ;import ;import ;import yle;public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { te(savedInstanceState); setContentView(ty_main); button = (Button)findViewById(One); lickListener(new kListener() { @Override public void onClick(View v) { NotificationManager notificationManager = (NotificationManager) temService(CATION_SERVICE); Intent intent = new Intent(, ); gs(_ACTIVITY_NEW_TASK | _ACTIVITY_CLEAR_TASK); PendingIntent pendingIntent = ivity(, 0, intent, 0); String channelId = createNotificationChannel("my_channel_ID", "my_channel_NAME", ANCE_HIGH); r notification = new r(, channelId) .setContentTitle("通知") .setContentText("你好,世界!") .setContentIntent(pendingIntent) .setSmallIcon(_launcher) .setAutoCancel(true) .setWhen(tTimeMillis()); (16657, ()); } }); } private String createNotificationChannel(String channelID, String channelNAME, int level) { if (_INT >= N_CODES.O) { NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationChannel channel = new NotificationChannel(channelID, channelNAME, level); NotificationChannel(channel); return channelID; } else { return null; } }}ckage tify;import patActivity;import ;public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { te(savedInstanceState); setContentView(ty_main2); }}activity_
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688673444a161482.html
评论列表(0条)