Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Application->onCreate() not called when reopen app

public class MyApplication extends Application{

@Override
public void onCreate()
{
    super.onCreate();
    Log.d("*******:", "onCreate");
}}

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>

When this Application is opened first time, the onCreate() method in MyApplication has been called,but when I finish the Activity(Press the Back Button), then reopen the app,I found the onCreate() method in MyApplication NOT been called.

And it is weird that if I "kill" the app in system background,then reopen it, I found the onCreate() method could be called again.

I don't know why,and I want to get the action when user reopen my application,could anyone help? Thanks!

like image 255
MichaelYe Avatar asked Jul 02 '15 10:07

MichaelYe


1 Answers

Your MyApplication is extending Application. So it does make sense that onCreate is not called when reopening the app as the application is in memory

If it was extending Activity the onCreate will be called when reopening

like image 86
SKT Avatar answered Sep 28 '22 12:09

SKT