3

我有一些活动,比如说活动 A、B 和 C。在活动 AI 中,通过带有 的菜单调用 B onOptionsItemSelected

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

现在,当我在 B 活动中时,我可以以相同的方式调用 A 一个(使用 Intent 和 startactivity):我如何处理它来调用AOnResumeOnRestart方法而不是方法OnCreate

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

4

3 回答 3

2

在 manifest.xml 中将您的 Activity A 配置为“singleTask”或“singleInstance”。然后,当您从 Activity B 调用 Activity A 时(假设 Activity A 已经像您描述的那样实例化),Acitivity A 的 onResume() 将被触发而不是 onCreate() 。这种配置有缺点,因此请阅读内容。

清单示例:

<activity android:name=".YourActivityA"     
        android:configChanges="keyboardHidden|orientation"      
        android:launchMode="singleTask">
于 2013-02-03T23:03:32.907 回答
0

您无法控制是否直接调用 OnCreate/OnResume/OnRestart 方法。它基于先前的活动是否仍在内存中。

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

于 2013-02-03T22:06:59.653 回答
0

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

要从活动 B 返回到活动 A,如果您使用:

  • startActivity(),那么 AonCreate()将始终被调用。
  • finish(), 那么 AonCreate()可能会或可能不会被调用。(这取决于 A 是否被您或操作系统破坏。)
于 2013-02-03T22:09:02.130 回答