来自 asynctack OnProgressUpdate 方法的通知

Notifications from asynctack OnProgressUpdate method

我目前正在开发一个应用程序,它将不断从网络服务器获取传感器数据并将其显示在文本视图中。我正在使用 Asynctask 获取数据,而 OnprogressUpdate 方法不断获取新数据并显示它。每当传感器数据大于 70 时,就会发送通知。

我遇到的问题是当数据大于 70 时只发送一个通知,当数据减少并重新增加时不发送通知。

当我删除布尔值时,我的 phone 继续发送通知,这很烦人。有没有办法当数据 >70 时,它发送一个通知,当它减少并再次增加时,发送另一个通知?

请注意,phone 将接收 2 个传感器数据,并将在文本视图中连续显示数据。

下面是 OnProgressMethod 的代码。希望你们能帮助我。谢谢

OnProgressUpdate 方法:

 private boolean alreadyDisplayedNotification = false;

protected void onProgressUpdate(byte[]... values) {
   super.onProgressUpdate(values);
         String command=new String(values[0]);//get the String from the recieved bytes
         String[] parts= command.split(",");
         String part1=parts[0];
         String part2=parts[1];
         
         temp.setText(part1);
         humi.setText(part2);
         
         
         if(Float.parseFloat(part2)>70.00 && !alreadyDisplayedNotification)
         {
         NotificationCompat.Builder builder=new NotificationCompat.Builder(this.context);
    builder.setContentTitle("AM Home Automation");
    builder.setContentText("humidity is high");
    builder.setSmallIcon(R.drawable.ic_launcher);
    builder.setTicker("alert");
    builder.setDefaults(Notification.DEFAULT_ALL);
    //builder.setSound(Uri.parse("android.resource://"+getPackageName()+"/"+R));
    
    notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(1, builder.build());
    //notificationID--;
    alreadyDisplayedNotification=true;
    
         }
        
         
      
     }

我认为:

if(Float.parseFloat(part2)<=70.00){
    alreadyDisplayedNotification=false;
}