问题描述
我在项目中使用堆栈式架构。 这是我的代码
#some data sample cleaning
df = pd.read_csv("https://pastebin.com/raw/YZukAhBz",parse_dates=['date'])
df['date'] = df['date'].apply(lambda x: x.replace(month=1,day=1))
print(df)
df['days_to_err'] = (df.groupby(['id',df['has_err'].iloc[::-1].cumsum()])['date']
.transform(lambda x: x.diff().dt.total_seconds().div(60).cumsum())
.fillna(0)
.to_numpy()[::-1])
print(df)
id date info_a_cnt info_b_cnt has_err days_to_err
0 123 2020-01-01 12:00:00 123 32 0 30.0
1 123 2020-01-01 12:15:00 2 43 0 15.0
2 123 2020-01-01 12:30:00 43 4 1 0.0
3 123 2020-01-01 12:45:00 43 4 0 45.0
4 123 2020-01-01 13:00:00 43 4 0 30.0
5 123 2020-01-01 13:15:00 43 4 0 15.0
6 123 2020-01-01 13:30:00 43 4 1 0.0
7 123 2020-01-01 13:45:00 43 4 0 0.0
8 232 2020-01-01 17:00:00 56 4 0 45.0
9 232 2020-01-01 17:15:00 97 1 0 30.0
10 232 2020-01-01 17:30:00 23 74 0 15.0
11 232 2020-01-01 17:45:00 91 85 1 0.0
12 232 2020-01-01 18:00:00 91 85 0 30.0
13 232 2020-01-01 18:15:00 91 85 0 15.0
14 232 2020-01-01 18:30:00 91 85 1 0.0
我正在使用无状态窗口小部件,因此无法使用 didChangeDependencies()方法来了解应用程序状态。
我的问题是如何在此屏幕上处理应用程序状态? 任何帮助或想法表示赞赏。预先感谢
解决方法
您可以在 ViewModel 中实现 didChangeDependencies()。
例如:
class InfoViewModel extends BaseViewModel with WidgetsBindingObserver{
void initialise() {
WidgetsBinding.instance.addObserver(this);
}
@override
Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
switch (state) {
case AppLifecycleState.resumed:
print('On Resume');
break;
case AppLifecycleState.inactive:
case AppLifecycleState.paused:
case AppLifecycleState.detached:
break;
}
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
}
不要忘记在您的视图小部件中调用 onModelReady: (model) => model.initialise()
。