应用程序重新打开相同的活动问题

时间:2014-06-06 09:08:11

标签: android android-activity activity-finish

我有3个活动,Activity1,Activity2和Activity3。 当应用程序转到后台时,它始终从同一活动打开。例如,Activity1是一个Launcher活动,而不是导航到Activity2,现在我按下HOME按钮,应用程序转到后台,每当应用程序重新打开它时,打开Activity2。但是在某些设备(三星S5)上我遇到了问题,当App在Activity2上时,按下Home按钮比重新打开app它总是打开Activity1这是启动器Activity。但是我希望当App重新打开时,它会在上次打开相同的Activity。

活动2代码

public class Activity2 extends Activity{
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity2);
}

public void onActivity1(View view){
    Intent mainIntent = new Intent(this, Activity1.class);
    mainIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainIntent.putExtra("EXIT", true);
    startActivity(mainIntent);
    Settings.this.finish();
}

public void onActivity3(View view) {
Intent infoIntent = new Intent(this, Activity3.class);
infoIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
infoIntent.putExtra("EXIT", true);
    startActivity(infoIntent);
    Settings.this.finish();
}
}

以下是清单代码

<activity
        android:name=".SplashScreen"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activity1"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="portrait"
        android:stateNotNeeded="true"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateAlwaysHidden" >
    </activity>
    <activity
        android:name=".Activity2"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    </activity>
    <activity
        android:name=".Activity3"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    </activity>

3 个答案:

答案 0 :(得分:1)

我认为这是不可能的,因为由于内存问题或其他原因,系统可以在任意时间杀死后台活动。如果您的活动被操作系统杀死,则无法将其恢复到之前的状态(在此处为活动2)。实际上这不是设备问题,它可能取决于设备规格,特别是像内存。

答案 1 :(得分:0)

尝试使用android:launchmode =&#34; singleTask&#34;为您的主要活动:)

答案 2 :(得分:-1)

三星似乎破坏了你的活动。但是在generell中使用Activity Lifecycle来了解活动何时被销毁。

http://www.skill-guru.com/blog/wp-content/uploads/2011/01/Android_Logcat-Activity-Starts.jpg