OnCreate而不是OnResume / OnRestart?

时间:2013-02-03 22:02:26

标签: android oncreate onresume application-restart

我有一些活动,比方说活动A,B和C. 在活动A中,我通过带有onOptionsItemSelected的菜单调用B:

Intent main = new Intent (this, MainActivity.class);
this.startActivity(main);

现在,当我进入B活动时,我可以用相同的方式调用A一个(使用Intent和startactivity):我如何处理它来调用OnResume或{{1 A的方法而不是OnRestart的方法?

我正在记录它,每当我从一个活动转移到另一个活动时,它总是调用OnCreate方法:我该怎么办?

3 个答案:

答案 0 :(得分:2)

在manifest.xml中将活动A配置为“singleTask”或“singleInstance”。然后,当您从活动B调用活动A(假设活动A已经像您描述的那样实例化)时,活动A的onResume()将是fire而不是onCreate()。这种配置有一些缺点,请阅读this

示例清单:

<activity android:name=".YourActivityA"     
        android:configChanges="keyboardHidden|orientation"      
        android:launchMode="singleTask">

答案 1 :(得分:0)

您无法控制是否直接调用OnCreate / OnResume / OnRestart方法。它取决于之前的活动是否仍在记忆中。

http://developer.android.com/guide/components/activities.html http://developer.android.com/images/activity_lifecycle.png

答案 2 :(得分:0)

  

我记录了它,无论何时我从一个活动转移到另一个活动,它总是调用OnCreate方法:我该怎么办?

要从活动B返回活动A,请使用:

  • startActivity(),然后始终会调用A onCreate()
  • finish(),然后可能会或可能不会调用A onCreate()。 (这取决于A是否被您或操作系统摧毁。)