2

我正在使用Min-TargetSDK=3and开发一个 android 应用程序TargetSDK=15。以前我也问过有关我的应用程序在按下主页按钮时没有被最小化到最近的应用程序的问题。每当我启动我的应用程序时,它都会从登录页面开始,而不是显示上次查看的屏幕。但直到现在我才找到解决方案。

当用户通过按下主页按钮从应用程序切换到其他任务时,我设法以某种方式带来了上次查看的活动。仍然应用程序没有被最小化到最近的应用程序。

现在面临一些不同的问题:

场景 1 - 好的:

  1. 从复制到 sd 卡的 apk 文件安装我的应用程序
  2. 安装后点击完成
  3. 然后通过单击启动器图标打开它。

在这种情况下,如果用户在使用应用程序时单击主页按钮并使用启动器图标重新打开应用程序,则会显示最后查看的屏幕。但仍然没有在最近的应用程序列表下列出应用程序。

场景 2 - 有问题:

  1. 从复制到 sd 卡的 apk 文件安装我的应用程序
  2. 安装完成后点击“打开”按钮打开。

在这种情况下,如果用户在使用应用程序时单击主页按钮并使用启动器图标重新打开应用程序,最后查看的屏幕不会显示。相反,它从登录页面开始。也未在“最近的应用程序”列表下列出的应用程序。这是我的清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.net.elderlyhealth"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-sdk android:minSdkVersion="3"
    android:targetSdkVersion="15"/> 

<application 
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".ElderlyActivity" android:alwaysRetainTaskState="true"
        android:label="@string/title_activity_elderly" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity  android:name=".ElderlyHealthAct" />


    <activity android:name=".account.LoginPage"  />
    <activity android:name=".account.SignupPage" />
    <activity  android:name=".account.RoleNavigator" />
    <activity  android:name=".account.CreateRoleActivity"  />
    <activity  android:name=".account.RoleAdmin"/>
    <receiver   android:name=".server.AlarmReceiver"></receiver>

</application>

</manifest>
4

1 回答 1

2

我认为这适用于您的第二种情况。您可以签FLAG_ACTIVITY_BROUGHT_TO_FRONTonCreate()您的第一个活动的标志,然后在设置时完成。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
    // Here activity is brought to front, not created,
    // so finishing this will get you to the last viewed activity
finish();
return;
    }

// Regular code.
}
于 2013-04-18T10:16:06.987 回答