换句话说,我想为我的列表创建持久存储。
我现在正在做什么:
我有2种方法,初始设置
_getDataFromStorage() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> wordsListStrings = prefs.getStringList('_wordsList');
Map<int, String> wordsMap = wordsListStrings.asMap();
setState(() {
wordsMap.forEach((key, word) {
Map<String, dynamic> decoded = jsonDecode(word);
_wordsList.add(Word.fromJson(decoded));
});
});
}
,以及其他应用程序打开我的应用程序时发生的情况。
getSharedText() async {
var sharedData = await platform.invokeMethod("getSharedText");
if (sharedData != null) {
_wordsList.add(Word(sharedData));
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> wordsListString = _wordsList.map((word) {
return jsonEncode(word);
}).toList();
prefs.setStringList('_wordsList', wordsListString);
setState(() {
});
}
}
问题我面对了
有时可以从其他应用程序打开应用程序,不知道如何正确调用它,因为它看起来像我的应用程序覆盖在其他应用程序上。在这种情况下,我打开了2个应用程序,其中一个可能已过时。
现在,我将解决方案视为在android应用程序标签之间切换时重新获取数据,这是我的问题-是否有活动?还是针对这种情况的更好解决方案?