如何知道应用何时打开(而不是在调用onCreate时)?

问题描述:

我想跟踪应用程序在Android中打开,但问题是,主要活动的onCreate可能会在方向更改时多次调用。还有另一种跟踪应用程序打开的方式吗?如何知道应用何时打开(而不是在调用onCreate时)?

您是否想考虑自己处理方向更改?这样,onCreate在方向改变时不会被调用(如果你对potrait和landscape有不同的布局,这不是一个好主意)。然后,您可以依赖onStart方法,该方法在屏幕关闭/打开时或活动恢复时调用。

onCreate()其它方法可用于:

  1. 的OnStart()
  2. OnRestart()
  3. 的onResume()

你想咨询的文件this page在为了更好地决定哪一个适合您的需求,因为他们都会在不同的情况下被调用。

或者,你总是可以处理的方向改变自己,这样的onCreate()方法就不叫当屏幕旋转:

修改清单文件:

<activity 
    android:name=".ActivityName" 
    android:configChanges="keyboardHidden|orientation" /> 

添加这种方法在活动:

/** {@inheritDoc} */ 
@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

希望这回答你的问题。

活动在onCreate被调用时打开,并在调用onDestroy时关闭。每个onCreate将始终与一个onDestroy配对;当方向改变时,活动(默认情况下)首先被销毁,然后以新的方向重新创建。

+0

当活动结束时,onDestroy通常不会被称为操作系统。 http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29 – Jimmy 2012-02-08 15:16:27