B活动和C活动是标准的,
A - > B - > C,然后按Home,重新按下应用程序图标,为什么B,C销毁?为什么B首先被摧毁,C被摧毁了?
<activity
android:name=".Main1Activity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.dell.taskdemo.Main2Activity" />
<activity android:name="com.example.dell.taskdemo.Main3Activity" />
public class Main1Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("---1: onCreate " + getTaskId());
}
public void enter(View view) {
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
}
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
System.out.println("---2: onCreate " + getTaskId());
}
public void enter(View view) {
startActivity(new Intent(this, Main3Activity.class));
}
}
public class Main3Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
System.out.println("---3: onCreate " + getTaskId());
}
}
答案 0 :(得分:1)
简而言之,“singleTask”活动允许其他活动成为其任务的一部分...因此,当您再次重新打开应用程序时,会显示活动a,因为截至目前活动b,c是其中的一部分任务...
首先删除活动b,因为它在活动c之前开始。
答案 1 :(得分:0)
检查清单文件,确保活动B和C未设置为“noHistory = true”。如果是,请删除该行,它应该解决您的问题。
不应仅仅因为活动A是SingleTask而销毁活动B和C.拥有SingleTask活动只是意味着它必须位于活动堆栈的底部 - 因此它只存在一次。如果每次关闭应用程序时B和C都在完成,那是因为B和C没有正确设置。所以问题在于B和C,而不是A。