Android应用程序->;重新打开应用程序时未调用onCreate()

Android应用程序->;重新打开应用程序时未调用onCreate(),android,oncreate,Android,Oncreate,第一次打开此应用程序时,调用了MyApplication中的onCreate()方法,但当我完成活动(按后退按钮),然后重新打开应用程序时,发现MyApplication中的onCreate()方法未被调用 奇怪的是,如果我在系统后台“杀死”应用程序,然后重新打开它,我发现onCreate()方法可以再次调用 我不知道为什么,我想在用户重新打开我的应用程序时获得操作,有人能帮忙吗?谢谢 您的MyApplication正在扩展应用程序。因此,当重新打开应用程序时,onCreate不被调用是有意义的

第一次打开此应用程序时,调用了MyApplication中的onCreate()方法,但当我完成活动(按后退按钮),然后重新打开应用程序时,发现MyApplication中的onCreate()方法未被调用

奇怪的是,如果我在系统后台“杀死”应用程序,然后重新打开它,我发现onCreate()方法可以再次调用


我不知道为什么,我想在用户重新打开我的应用程序时获得操作,有人能帮忙吗?谢谢

您的
MyApplication
正在扩展
应用程序。因此,当重新打开应用程序时,
onCreate
不被调用是有意义的,因为应用程序在内存中


如果它正在扩展
活动
,则在重新打开时将调用
onCreate
onCreate仅用于初始创建,因此应仅调用一次。 onCreate()方法执行基本的应用程序启动逻辑,该逻辑在活动的整个生命周期中只应发生一次

初始化过程需要大量资源,为了避免这种情况,活动一旦创建就不会完全销毁,但在后台对用户不可见,因此一旦将其放回前台,就不会重新初始化

一旦onCreate()完成执行,系统将快速连续调用onStart()和onResume()方法

如果您希望多次完成任何处理,则应将其放在其他位置,如@OnResume方法中

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

希望你能理解

我认为您需要添加日志报告,以便我们更好地了解您的问题。@Biswajit这是一个非常简单的演示,我认为日志报告可能没有必要。我的描述可能不太清楚,我将编辑我的问题描述。无论如何,谢谢。您需要了解活动生命周期…可能,不确定,这将告诉你一点:@MahaKhan我知道活动生命周期,我不是在要求,而是应用程序的生命周期。好的,我明白了,非常感谢:)现在我明白了,非常感谢!
public class MainActivity extends ActionBarActivity{

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}}
<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
protected void onRestart() {
  Log.d("*******:", "onRestart");
    super.onRestart();

}

protected void onResume() {
    super.onResume();
  Log.d("*******:", "OnREsume");
}