在应用程序中使用OnPause和OnResume

时间:2012-07-30 12:49:07

标签: android

我正在制作一个应用程序,我想让控件进入某些活动,然后再回来。当我搜索到该问题时,我发现使用OnPause()OnResume()可以解决此问题,但我不知道如何使用它们。

这是我将控件转移到其他活动的代码。请告诉我如何在这方面使用OnPause()OnResume()。谢谢。

Intent intent = new Intent(MCQ.this,ConfigActivity.class);
            int ClassIndex = 2;
            intent.putExtra("ClassIndex", ClassIndex);
            startActivity(intent);

3 个答案:

答案 0 :(得分:3)

你没有太多意义。当您致电startActivity()时,Android会将您当前的Activity置于后台,并开始(或带到前台)Activity中指定的新Intent

当您的onPause()从屏幕上消失时,

Activity会被呼叫,例如系统要么将其置于后台,要么终止它。

当您的onResume()在屏幕上显示时,会调用

Activity,例如。在onCreate()之后,如果Android创建了Activity的新实例,或者系统将Activity从后台带回来。

Activities之间没有明确的控制权传递。如果它位于活动堆栈的顶部(在设备屏幕上可见),则可以与它进行交互。

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

答案 1 :(得分:1)

onPause()onResume()由android调用 你的工作是实现这些方法。 onPause和onStop在Android的启动活动中被调用,而onCreate,onStart和onResume在您的启动时调用。如果您想返回,通常只需按设备上的后退按钮即可 您可能需要查看the Android devGuide,尤其是在Activity生命周期中。

答案 2 :(得分:1)

我认为您可能会对onPause()onResume()的用途感到困惑。

当Activity即将向用户显示其视图时,将调用

onResume()。您可以在此方法中使用您的意图,以便主Activity立即转到ClassIndex活动。但是,当您离开ClassIndex活动时,系统会再次调用onResume(),这会将您发送回ClassIndex

活动离开时会调用

onPause()。这是用于锁定屏幕还是移动到另一个Activity。在这种情况下,当您在主Activity中调用startActivity时,Android会在主要活动中调用onPause(),然后再输入新活动。

在这种情况下,您可能需要使用startActivityForResult()并使用它来确定您是否从ClassIndex活动回来。如果没有,那就开始吧。如果是这样,那么继续进行主要活动。

更好的解决方案可能或者可能不是在ClassIndex中启动应用程序,并在用户完成后转移到您的主要活动。如果您想在每次用户进入应用程序时转移到ClassIndex,就会出现这种情况。