活动切换的生命周期方法

时间:2018-03-14 13:43:43

标签: android

我想通过调用startActivity(intent)从另一个Activity(FIRST Activity)启动一个Activity(SECOND Activity)。在我真正做到之前,我发现有人说生命周期方法按以下顺序调用:

  1. FIRST活动onCreate
  2. 第一项活动onStart
  3. 第一次活动onResume
  4. 第一次暂停活动
  5. 第二次活动onCreate
  6. 第二项活动onStart
  7. SECOND活动onResume
  8. FIRST活动onStop
  9. 当我第一次打电话给第一个活动时,它会跟着

    1. FIRST活动onCreate
    2. 第一项活动onStart
    3. 第一次活动onResume
    4. 当我从第一个活动切换到第二个活动时

      1,暂停的第一项活动
      2.第二次创建活动 3.开始的第二项活动 4.关于举措的第二次活动 5.第一次活动onStop

      问题是当我切换回第一个活动时

      1. 第二项活动暂停
      2. FIRST活动onCreate
      3. 第一项活动onStart
      4. 第一次活动onResume
      5. SECOND Activity onStop
      6. 我读了活动生命周期,当我从第二个活动切换到第一个活动时,如果我没错,我应该拨打onRestart()

        开始活动代码

        public void goToActivity2(View view) 
        {
            Intent intent = new Intent(this,Activity2.class);
            startActivity(intent);
        }
        

        的AndroidManifest.xml

        <?xml version="1.0" encoding="utf-8"?>
        

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

2 个答案:

答案 0 :(得分:0)

应该调用OnResume。当你拨打第二个活动时,不要完成第一个活动。并在OnResume中做你想做的事情..  实际上你再次启动第一个活动..如果你想调用前一个活动的onResume(),而不是使用onBackPressed。 使用

super.onBackPressed();

它会为你做这笔交易。

答案 1 :(得分:0)

查看代码,您必须尝试使用​​以下命令返回Activity1:

Intent intent = new Intent(this,Activity1.class); startActivity(意向);

如果您只是使用onBackPressed(),那么有些东西会从堆栈中清除您的活动,这就是您的activity1再次进行onCreate的原因,放置一些Activity2代码来查看正在发生的事情。