我已经实现了一个类,当一个人在给定时间拒绝服药时发送消息。这是实现的代码。
private void sendSMS() {
DatabaseReference ref= FirebaseDatabase.getInstance().getReference("Users");
ref.child(firebaseAuth.getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren()) {
String number = "" + dataSnapshot.child("sosnumber").getValue();
String name = "" + dataSnapshot.child("name").getValue();
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(number,null,name + " has rejected the taking medicine, "+ medicineAlarm.getPillName()+" at " +medicineAlarm.getStringTime(),null,null);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
但是代码启动的时候,重复发送了10多条消息。如何改进这个代码只发送一次消息。