我正在尝试在我的应用程序中设置一个变量,该变量仅在应用程序运行时才有效,并且在退出应用程序时将被销毁。这个概念类似于Web浏览器中的会话,其中只有在关闭浏览器时,会话才会被破坏。
由于某些原因,我无法使用from anymail.message import attach_inline_image
from django.core.mail import EmailMultiAlternatives
msg = EmailMultiAlternatives(
from_email=<FROM_EMAIL>,
to=<TO_EMAIL>,
subject='test')
buf = BytesIO()
fig.savefig(buf, format="png") # matplotlib chart
buf.seek(0)
buf_id = 0
cid = attach_inline_image(msg, buf.read(), idstring=buf_id, filename=buf_id)
html = '<html><img src="cid:{}"></html>'.format(cid)
msg.attach_alternative(html, "text/html")
msg.send()
,因为当触发state
动作时,它将被更新。我曾想过使用dispatch
,但由于它在设备中存储了变量,因此在我的情况下也不起作用。否则,有一种方法可以在应用程序退出时执行AsyncStorage.setItem()
,而不会触发任何按钮。
答案 0 :(得分:0)
使用redux,因为它确实具有您想要的行为。您可以将其存储在商店中,并且在退出应用程序时会被销毁。
答案 1 :(得分:0)
正如上面评论中所指出的,AppState
API似乎是您的朋友。未经测试的示例代码:
class AppStateExample extends Component {
componentDidMount() {
this.temp = "something"
AppState.addEventListener('change', this.handleAppStateChange);
}
handleAppStateChange = (nextAppState) => {
if (nextAppState.match(/inactive|background/)) {
this.temp = null
}
};
}