安卓 - 启动器和返回栈行为

4
此处所述,当用户按下Home键离开一个任务时,当前活动会被停止并且其任务进入后台。如果用户稍后通过选择启动该任务的launcher图标来恢复任务,则任务会回到前台并在堆栈顶部恢复活动。

所以,我准备了一个简单的测试:

活动#1 == 文本标记和带有onClick设置的按钮
    public class FirstActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);
    }

    public void onClick(View v)
    {
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivity(intent);
    }
}

活动 #2 == 仅文本标记

    public class SecondActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
    }
}

和清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="FirstActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name="SecondActivity"
                  android:label="@string/app_name">
        </activity>

    </application>
</manifest>

启动图标无法显示最近的活动,它总是启动第一个活动并将其放入堆栈中。因此,在一个任务中可能会有许多第一和第二个活动。从最近使用的应用程序列表中选择的图标可以启动堆栈中确切的最后一个活动。 我做错了什么?


1
根据您启动应用程序的方式,可能会出现问题。如果您从IDE启动应用程序,请在“选项”->“应用程序”中停止应用程序。然后像普通用户一样从主屏幕启动应用程序。我期望在这种情况下,返回堆栈行为将是正常的。 - Robert
确实是这样。谢谢。但这怎么可能呢?有什么区别吗?我读过这个问题,但似乎在很长时间前就已经在Eclipse中消除了。显然,在Idea中它仍然存在。无论如何 - 当然这又是Android开发的另一个乐趣。 - mjollneer
我将之前的评论提交为答案。如果它对您有帮助,请将其标记为您问题的答案。这样问题就可以关闭了。 - Robert
1
@robert 这个问题不仅在从IDE启动时出现。如果您通过Google Play(Android Market)安装或更新应用程序,或者通过Web浏览器下载应用程序,或者从SD卡安装并直接从INSTALLER屏幕打开它,也会出现此问题。在Android的Google代码网站上有几个未解决的问题,但似乎Android开发人员并不关心 :-( - David Wasser
1个回答

1

根据您启动应用程序的方式,可能会出现问题。如果您是从IDE启动应用程序,请停止选项->应用程序中的应用程序。然后像普通用户一样从主屏幕启动您的应用程序。我预计在这种情况下,返回堆栈行为将是正常的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接