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