我有4个活动让我们假设活动" A"," B"," C"和" D"当我从C> D> A移动时,当我按下Activity" A"中的设备后退按钮,然后" C"我变得可见,而不是从应用程序中存在。我怎么能实现这一点。
答案 0 :(得分:2)
您可以在拨打下一个活动时销毁您的活动。因此,在Intent
之后,您可以调用finish()
方法来销毁该活动。
检查一下
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
当你使用它时,它不会转到之前的活动,而是完成活动。
或强>
您还可以使用NO_HISTORY
标志
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
答案 1 :(得分:0)
像这样覆盖你的背景,从那里你想回到主屏幕
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle("Exit");
builder.setMessage("Do you want to exit?");
builder.setInverseBackgroundForced(true);
builder.setNegativeButton("Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/*finish();
System.exit(0);*/
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
builder.setPositiveButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create();
builder.show();
}
答案 2 :(得分:0)
我猜您正试图退出您的应用。 这是你的答案: How to exit from the application and show the home screen?
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
答案 3 :(得分:0)
在活动A中,您可以完成onResume中的所有活动,因为您需要将所有活动存储在staic变量中
活动B
public static B b;
oncreate(){
//...
b=this;
}
对C和D以及A
执行相同的操作onResume(){
clearAllTasks();
}
public void clearAllTasks(){
if(B.b!=null){
B.b.finish();
}
if(C.c!=null){
C.c.finish();
}
if(D.d!=null){
D.d.finish();
}
}
清单中的
<application>
<activity android:name="A"
android:noHistory="true">
</activity>
//...
</application>
答案 4 :(得分:0)
为我工作:
restart.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(restart);