Hi,
I've run into a number of weird cases where properties on a *Settings* element doesn't properly persist between launches of an app. Initially I used aliasing quite heavily for it's syntactic ease, as per the main example from the docs. However, I found that sometimes only part of the the properties would properly persist for next launch. I could never quite reproduce the issues consistently and it had a sort of race-condition'y feel about it. So I gave up an aliases. Instead I've opted for a direct one-way load binding on launch and then a write-back to the Settings when the app closes down. This seems to work correctly regarding value persistence. That is, when it actually works... Here's the pickle; Android has two means of closing an application. One is, that you can directly exit it via the back button, which triggers a Close event on the main window, the other is by suspending the app and then "clearing" it out from the list of background processes. The former produces a valid result, where properties are properly persisted to the *Settings*, the other does not. I'm guessing this is because the actual write-back happens on the destruction of the Settings element, which is, afaict, never triggered if the app is cleared during suspension. I've made a futile attempt at manually triggering the write-back, at an earlier stage of the shutdown, by connecting the the *application.state*, e.g.: * Connections {* * target: Qt.application* * onStateChanged: {* * switch(Qt.application.state) {* * case Qt.ApplicationActive:* * console.log("Qt.ApplicationActive")* * break;* * case Qt.ApplicationInactive:* * console.log("Qt.ApplicationInactive")* * break;* * case Qt.ApplicationSuspended:* * console.log("Qt.ApplicationSuspended")* * // WRITE STUFF TO SETTINGS HERE* * break;* * case Qt.ApplicationHidden:* * console.log("Qt.ApplicationHidden")* * break;* * }* * }* * }* However, even by doing it this way, "seemingly" before the app is suspended, the values are still not written back at all. Presumably it's because of missing destruction trigger mentioned above. So, what are my options here if I'd like to use *Settings* here? I notice QSettings have a sync <http://doc.qt.io/qt-5/qsettings.html#sync> method, but I don't see anything similar for the QML variant. What is the canonical way to solve this problem for Android? Has anyone else done this in a practical manner? Best regards, René Hansen
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest