完成活动在BackStack - 机器人 [英] Finish Activity in BackStack - Android
本文介绍了完成活动在BackStack - 机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的应用程序我有活动A,B,C,D和E.第一个活动是一个然后打开B,然后C和D.现在我回来堆栈ABCD。现在,当我移动到E从DI要完成在后面堆栈中的所有活动,并立即注册E应该在堆栈中的第一个活动。
In my app I have activities A, B, C, D and E. First activity is A then opening B and then C and D. Now my back stack is A-B-C-D. Now when I move to E from D I want to finish all the activity in back stack and now E should be the first activity in stack.
在我的情况
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
或
android:launchMode="singleTask"
没有工作,因为我不是重新打开一个已经打开的活动。我不得不关闭所有的活动backstack同时打开一个新的活动。
didn't work, because I am not reopening an activity which is already opened. I have to close all the activity in backstack while opening a new activity.
请帮我做这件事。
推荐答案
编辑最终答案
ActivitA重要
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityA extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
startActivity(new Intent(ActivityA.this,ActivityE.class));
finish();
}
setContentView(R.layout.alayout);
Button play;
play = (Button) findViewById(R.id.aId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityA.this,ActivityB.class));
}
});
}
}
ActivityB
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityB extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.blayout);
Button play;
play = (Button) findViewById(R.id.bId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityB.this,ActivityC.class));
}
});
}
}
ActivityC
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityC extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.clayout);
Button play;
play = (Button) findViewById(R.id.cId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityC.this,ActivityD.class));
}
});
}
}
ActivityD重要
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityD extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.dlayout);
Button play;
play = (Button) findViewById(R.id.dId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
finish();
}
});
}
}
ActivityE
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityE extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.elayout);
Button play;
play = (Button) findViewById(R.id.eId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(new Intent(ActivityE.this,ActivityE.class));
}
});
}
}
只是这样做
这篇关于完成活动在BackStack - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文