我有一项名为" OtpVerification"包含30秒的计时器,在此过程中,如果我从应用程序退出,然后重新打开应用程序,则会产生问题1)几秒钟后,当我重新打开应用程序时,应用程序从MainActivity启动,而不是该活动和2)应用程序崩溃。
这里是场景: - 场景:当自动OTP验证过程开始时,30秒计时器启动,现在用户尝试结束此过程并按回按钮退出应用程序,然后他会在几秒钟内立即重新启动应用程序。现在,当计时器到期并且应用程序尝试启动手动OTP验证屏幕时,这会产生致命异常并且应用程序崩溃。
这里是代码: -
/home/mobile/log/
答案 0 :(得分:0)
尝试在onPause()中取消注册您的Receiver并创建并将标志更改为false,并在onResume()中检查flag是否为false,然后再次重新注册接收器。 我在我的应用程序中遇到了类似的问题,这些确实帮助了我。
答案 1 :(得分:0)
有点像我在我的应用程序中实现的,我从我的服务中调用了接收器
@Override
protected void onResume() {
super.onResume();
registerReceiver();
}
@Override
protected void onPause() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
isReceiverRegistered = false;
super.onPause();
}
private void registerReceiver(){
if(!isReceiverRegistered) {
LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
new IntentFilter(SessionStore.REGISTRATION_COMPLETE));
isReceiverRegistered = true;
}
}