漫长经历

5天了,终于成功了!!!

首先是在实验课上,跟着老师给的讲义写代码,写完发现在虚拟机和手机上都运行不了,还会报错,在网上找了许久,试了许多个博主说的方法,都没成功,崩溃了,就好几天不管它了!!!

 当时以为是我手机的问题,明明将权限开了,在AndroidManifestx.xml中也设置了权限,如下:



<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>


还有方法是将build.gradle下的targetSdk版本改为30,我也试了!!!最终都以失败告终。。。

 后面又开始怀疑代码的问题,又将代码改了几遍,最终改为了最简单的。。。即通知必备要素

//1.获得NotificationManager对象
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//2.创建一个通知栏对象
Context context = getApplicationContext();
Notification notification = new NotificationCompat.Builder(context,"whatever")
        .setContentTitle("This is content title")
        .setContentText("This is content text")
        .setWhen(System.currentTimeMillis())
        .setSmallIcon(SmallDrawable)
        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.img_girl))
        .build();
//3.发送通知
manager.notify(1,notification);

还是失败了!!!!绝望了!!!!!

 

开始步入正题,解决之道(与上无关)如下:

这不老师刚发下一轮作业,我一看,好家伙,就是关于通知的(如下)

 

 

看来是不解决不行了,又在网上摸索了许久,发现了问题在于Android版本的问题,现在大部分都用android11,但在Android 8.0之后版本使用通知时,需要加一个channelld的东西,正确创建通知步骤如下:

1.获得NotificationManager对象

NotificationManager manager = (NotificationManager) 

2.创建Channel

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
     String channelId = "whatever";
     String channelName = "whatever content";
     int importance = NotificationManager.IMPORTANCE_HIGH;
     manager.createNotificationChannel(new NotificationChannel(channelId, channelName, importance));
 }

3.创建一个通知栏对象

 
 Context context = getApplicationContext();
     Notification notification = new NotificationCompat.Builder(context,"whatever")
         .setContentTitle("This is content title")
         .setContentText("This is content text")
         .setWhen(System.currentTimeMillis())
         .setSmallIcon(SmallDrawable)
         .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.img_girl))
         .build();

4.发送通知

 manager.notify(1,notification);

希望世界少点bug,多点关爱!!!

 

解决bug网址: 如何解决android 通知栏不显示的问题 - 指尖,写不尽 - 博客园 (cnblogs.com)

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐