我使用 AppLifeycleState 来检测用户使用我的应用程序时的行为。为了检测我的应用未被使用,我使用了
因为我想检测我的应用程序是否未使用1秒钟,所以我将用户扔到了确认指纹(如Whatsapp)上。一切都很好,如果用户再次按下最近使用的应用程序,“主页”按钮,我可以检测到我的应用程序是否未被使用,如果用户再次回来,则将用户置于确认指纹中。
但是问题是,当设备屏幕锁定并再次打开时,用户没有扔到确认指纹上。
我当然可以在控制台中看到我的应用程序是 AppLifecycleState.paused 和 AppLifecycleState.inActive ,但是奇怪的是,如果我在其中重新加载ctrl +s
我的IDE我的应用程序使我进入了确认指纹。
为什么会这样?
已经在真实设备(Redmi Note 4)中进行了测试,但仍然无法正常工作。
@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
setState(() => _appLifecycleState = state);
if (widget.userBox == null) {
print('Box User Null');
return;
} else {
if (widget.userModelHive.fingerPrint || widget.userModelHive.pinCode) {
if (_appLifecycleState != AppLifecycleState.resumed) {
//? Berarti Lifecylenya InActive , Paused , Detached , Maka Simpan Waktu Keluarnya
final actionBox = await repository.changeDateExit(
userModelHive: UserModelHive()
..id = widget.userModelHive.id
..giverName = widget.userModelHive.giverName
..pinCode = widget.userModelHive.pinCode
..fingerPrint = widget.userModelHive.fingerPrint
..darkMode = widget.userModelHive.darkMode
..tokenExpiry = true
..durationToken = widget.userModelHive.durationToken
..dateExit = DateTime.now()
.add(Duration(seconds: widget.userModelHive.durationToken)),
);
print(state);
return actionBox;
} else {
print('Resumed Lifecycle');
}
}
}
if (mounted) {
setState(() {});
}
super.didChangeAppLifecycleState(state);
}