来自 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;
}
我目前正在开发一个应用程序,它将不断从网络服务器获取传感器数据并将其显示在文本视图中。我正在使用 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;
}