我有某种登录活动,如果登录成功则返回main。但在那之后,如果用户按下硬件“后退”按钮,主要活动由于某种原因重新启动...
它似乎是前一个(登录)活动,但由于它已经完成,因此重新启动父活动。
我尝试在清单中的登录活动中使用<activity android:noHistory="true">
。 startActivityForResult()
对我来说也不是解决方案。问题依然存在。
你能帮我解决一下其他想法吗?
UPD:我回到主要活动时调用finish()
答案 0 :(得分:0)
这可能是因为当您“返回”时,您尚未完成活动。主要的。检查您创建意图的位置,始终完成您希望通过后台访问 的活动。
答案 1 :(得分:0)
尝试在每个startActivity()
之后使用它startActivity(intent);//you already have this
finish();//add just this .. and report
答案 2 :(得分:0)
请勿在{{1}}方法中调用finish()
。 Android / OS会自动为您完成。
仅限呼叫onBackPressed()
如果登录正常并且您想要关闭登录活动。当然只有主要活动存在于后台。
如果后台堆栈不包含主要活动,请使用通用finish()
方法将其打开。同时检查this answer以从后台堆栈中删除活动。
答案 3 :(得分:0)
通过在主要活动的onBackPressed()
方法中强制退出整个应用程序来解决问题。虽然,对我来说这似乎不是一个明确的解决方案。