Вопрос так же прост, как и заголовок sugests.
Чтобы объяснить немного больше, я начинающий в программировании Android, и мне нужно, чтобы мое приложение запускало определенную функцию каждый раз, когда обновляется мой firestore.
protected void onStart(){
super.onStart();
mDocRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(DocumentSnapshot documentSnapshot, FirebaseFirestoreException e) {
Map<String,Object> SMSFlag = new HashMap<String, Object>();
String quotenum = documentSnapshot.getString(NUM_KEY);
String quotemsg = documentSnapshot.getString(SMS_KEY);
state = documentSnapshot.getString(STATE_KEY);
if (state.equals("tosend")) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(quotenum, null, quotemsg, null, null);
Toast.makeText(MainActivity.this, "SMS Sent!", Toast.LENGTH_LONG).show();
} catch (Exception e1) {
Toast.makeText(MainActivity.this, "Error sending SMS: " + e, Toast.LENGTH_LONG).show();
}
SMSFlag.put(STATE_KEY, "sent");
mDocRef.set(SMSFlag);
state = documentSnapshot.getString(STATE_KEY);
}
}
});
}
Это должно отправить сообщение.Как вы можете видеть в коде, я использую ключ состояния, потому что он отправлял 3, а иногда 4 идентичных сообщения.После реализации состояния он отправляет только один (как и ожидалось), а иногда и два.
Я хочу знать, есть ли метод Android, для которого я могу заменить onStart (), потому что я думаю, что проблема заключается вСам метод.
Надеюсь, я хорошо объяснил.Заранее благодарю всех, кто хочет помочь