我想通过调用startActivity(intent)从另一个Activity(FIRST Activity)启动一个Activity(SECOND Activity)。在我真正做到之前,我发现有人说生命周期方法按以下顺序调用:
当我第一次打电话给第一个活动时,它会跟着
当我从第一个活动切换到第二个活动时
1,暂停的第一项活动
2.第二次创建活动
3.开始的第二项活动
4.关于举措的第二次活动
5.第一次活动onStop
问题是当我切换回第一个活动时
我读了活动生命周期,当我从第二个活动切换到第一个活动时,如果我没错,我应该拨打onRestart()
。
public void goToActivity2(View view)
{
Intent intent = new Intent(this,Activity2.class);
startActivity(intent);
}
<?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>
答案 0 :(得分:0)
应该调用OnResume。当你拨打第二个活动时,不要完成第一个活动。并在OnResume中做你想做的事情.. 实际上你再次启动第一个活动..如果你想调用前一个活动的onResume(),而不是使用onBackPressed。 使用
super.onBackPressed();
它会为你做这笔交易。
答案 1 :(得分:0)
查看代码,您必须尝试使用以下命令返回Activity1:
Intent intent = new Intent(this,Activity1.class); startActivity(意向);
如果您只是使用onBackPressed(),那么有些东西会从堆栈中清除您的活动,这就是您的activity1再次进行onCreate的原因,放置一些Activity2代码来查看正在发生的事情。