如上所述here
当用户通过按Home键离开任务时,当前活动将停止,其任务将进入后台。 < ...>如果用户稍后通过选择开始任务的启动器图标来恢复任务,则任务将到达前台并在堆栈顶部恢复活动。
所以我准备了简单的测试
活动#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>
Launcher图标不会向我显示上一个活动,它始终会启动第一个活动并将其放入堆栈。因此,在一项任务中,可能会有许多第一次和第二次活动。最近的应用列表中的图标启动堆栈中的最后一个活动。 我做错了什么?
答案 0 :(得分:1)
根据您启动应用的方式存在问题。如果您在尝试此操作时从IDE启动应用程序:请从options-&gt;应用程序停止您的应用程序。然后像往常一样从主屏幕启动您的应用程序。我希望在这种情况下,后台堆栈行为是正常的
答案 1 :(得分:0)
好的解决方法似乎是将此添加到您的第一个活动onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// Activity was brought to front and not created,
// Thus finishing this will get us to the last viewed activity
finish();
return;
}
// Regular activity creation code...
}