Questions tagged «activity-lifecycle»

15
从历史记录堆栈中删除活动
我的应用程序在用户首次运行该应用程序时显示一个注册活动,如下所示: ActivitySplashScreen(欢迎使用游戏,注册一个帐户?) ActivitySplashScreenSignUp(很好,请填写此信息) ActivityGameMain(主游戏屏幕) 因此,当用户单击每个屏幕上的按钮时,活动将以完全相同的顺序彼此启动。 当用户从活动#2转到#3时,是否有可能彻底清除历史记录堆栈中的#1和#2?我希望这样,如果用户位于#3,然后单击“后退”按钮,则他们只是转到主屏幕,而不是返回初始屏幕。 我想我可以通过任务来完成此任务(例如,在#3上开始新任务),但想看看是否有更简单的方法, 谢谢

18
注销时,清除“活动历史记录”堆栈,以防止“后退”按钮打开仅登录的活动
我的应用程序中的所有活动都需要用户登录才能查看。用户几乎可以退出任何活动。这是应用程序的要求。无论何时用户注销,我都想将用户发送到Login Activity。此时,我希望此活动位于历史记录堆栈的底部,以便按下“后退”按钮可使用户返回Android的主屏幕。 我已经看到这个问题在几个不同的地方问过,所有问题都得到了相似的答案(我在这里概述了),但是我想在这里提出来收集反馈。 我尝试通过设置其Intent标志FLAG_ACTIVITY_CLEAR_TOP似乎按照文档中所述进行操作来打开Login活动,但是并没有实现将Login活动放在历史记录堆栈底部并防止用户向后导航的目标。以前看过的登录活动。我也尝试android:launchMode="singleTop"在清单中用于Login活动,但这也没有实现我的目标(而且似乎也没有任何作用)。 我相信我需要清除历史记录堆栈,或完成所有先前打开的活动。 一种选择是让每个活动的onCreate检查都处于登录状态,finish()如果尚未登录则。我不喜欢此选项,因为后退按钮仍然可以使用,随着活动自身关闭,它可以返回。 下一个选项是维护LinkedList对所有打开的活动的引用,这些引用可以从任何地方静态访问(可能使用弱引用)。注销后,我将访问此列表并遍历所有先前打开的活动,并finish()在每个活动上进行调用。我可能很快就会开始实现此方法。 但是,我宁愿使用一些Intent标记技巧来完成此操作。我很高兴发现自己可以满足我的应用程序要求,而不必使用上面概述的两种方法中的任何一种。 有没有一种方法可以通过使用Intent或清单设置来实现,或者我的第二个选择是保持LinkedList打开的活动是最好的选择?还是我完全忽略了另一个选择?

12
Activity.finish()方法到底在做什么?
我正在开发Android应用程序一段时间,并关注了很多有关活动生命周期以及应用程序生命周期的文章。 我知道Activity.finish()方法会在到的途中进行调用Activity.onDestroy(),并且还会从堆栈中删除该活动,并且我猜想它以某种方式指向了操作系统和垃圾收集器,他可以“尽其所能”并在发现适当时释放内存所以.... 我来到了这篇文章- 退出应用程序会皱眉吗?并阅读Mark Murphy的答案。 这让我对该finish()方法的实际作用感到困惑。 有机会我会打电话finish(),并onDestroy()不会被调用?

4
是在onActivityResult()之前调用onResume()吗?
这是我的应用程序的布局方式: 提示onResume()用户登录 如果用户登录,他可以继续使用应用程序 3。如果用户随时注销,我想再次提示登录 我该如何实现? 这是我的MainActivity: @Override protected void onResume(){ super.onResume(); isLoggedIn = prefs.getBoolean("isLoggedIn", false); if(!isLoggedIn){ showLoginActivity(); } } 这是我的LoginActivity: @Override protected void onPostExecute(JSONObject json) { String authorized = "200"; String unauthorized = "401"; String notfound = "404"; String status = new String(); try { // Get the messages array …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.