Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么多次使用Notification.Builder会使应用程序崩溃?_Java_Android_Notificationmanager - Fatal编程技术网

Java 为什么多次使用Notification.Builder会使应用程序崩溃?

Java 为什么多次使用Notification.Builder会使应用程序崩溃?,java,android,notificationmanager,Java,Android,Notificationmanager,我正在制作一个项目,如果setsetLuminLevels()setHumidLevels()settplevels()返回true,将向用户显示通知 这是我的主要任务 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

我正在制作一个项目,如果set
setLuminLevels()
setHumidLevels()
settplevels()
返回true,将向用户显示通知

这是我的主要任务

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        NotificationCompat.Builder lumin =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.index)
                        .setContentTitle("Greenhouse Warning:")
                        .setContentText("Luminosity Out of range!");

        NotificationCompat.Builder humid =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.index)
                        .setContentTitle("Greenhouse Warning:")
                        .setContentText("Humidity Out of range!");

        NotificationCompat.Builder temp =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.index)
                        .setContentTitle("Greenhouse Warning:")
                        .setContentText("Temperature Out of range!");

        int mNotificationId1 = 001;
        int mNotificationId2 = 002;
        int mNotificationId3 = 003;

        NotificationManager mNotifyMgr1 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationManager mNotifyMgr2 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationManager mNotifyMgr3 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        //set and check the displayed levels
        if(setLuminLevels()) mNotifyMgr1.notify(mNotificationId1, lumin.build());
        if(setHumidLevels()) mNotifyMgr2.notify(mNotificationId2, humid.build());
        if(setTempLevels() ) mNotifyMgr3.notify(mNotificationId3, temp.build() );
    }
为什么这段代码会使我的应用程序崩溃?如何使用多重通知

事故报告:

                                                    --------- beginning of crash
07-20 14:23:57.136 2645-2645/com.joanjantz_lee.greenhouse E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            Process: com.joanjantz_lee.greenhouse, PID: 2645
                                                                            java.lang.NumberFormatException: For input string: "26.57"
                                                                                at java.lang.Integer.parseInt(Integer.java:521)
                                                                                at java.lang.Integer.parseInt(Integer.java:556)
                                                                                at com.joanjantz_lee.greenhouse.MainActivity$3.onDataChange(MainActivity.java:206)
                                                                                at com.google.android.gms.internal.zzbmz.zza(Unknown Source)
                                                                                at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source)
                                                                                at com.google.android.gms.internal.zzboc$1.run(Unknown Source)
                                                                                at android.os.Handler.handleCallback(Handler.java:751)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                at android.os.Looper.loop(Looper.java:154)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

考虑日志中的以下行:

java.lang.NumberFormatException: For input string: "26.57"
at java.lang.Integer.parseInt(Integer.java:521)                                                                                
at java.lang.Integer.parseInt(Integer.java:556)                                                                                
at com.joanjantz_lee.greenhouse.MainActivity$3.onDataChange(MainActivity.java:206)
您有一个正在调用的onDataChange事件的侦听器,并且正在尝试将字符串解析为整数。字符串包含的“26.57”不是有效的整数

查看MainActivity.java的第206行


PS:user1779222是对的。NotificationManager是一个单例,因此您只需要对它进行一次引用。

您有关于该崩溃的日志吗?顺便说一句,我相信mNotifyMgr1、mNotifyMgr2、mNotifyMgr3是同一个实例,因此您不需要那么多变量。@user1779222我没有一个变量。没有,我会随时通知您though@user1779222这正是我所想的,但是我如何生成通知作为新实例呢?我以为News会处理这些事情扫描你的日志?@user1779222见上文,只是添加了它