// handle backup data, save on disk, upload to cloud, etc.
})
// check if backup is already running:
ifmessenger.isBackupRunning()==false{
do{
// try to resume previous backup:
trymessenger.resumeBackup()
}catch{
// try to start a new backup:
letparams:BackupParams=...
trymessenger.startBackup(
password:"backup-passphrase",
params:params
)
}
}
// update params in the backup:
letparams:BackupParams=...
trymessenger.backupParams(params)
// stop the backup:
trymessenger.stopBackup()
// optionally stop receiving backup data
cancellable.cancel()
```
When starting a new backup you must provide `BackupParams` to prevent creating backups that does not contain it.
The registered backup callback can be reused later when a new backup is started. There is no need to cancel it and register a new callback in such a case.