您好我的应用程序My image
中存在一个小问题在我提供的图片中,您可以看到两个活动,每个活动一个按钮。当按下按钮1时,它将带您进入第二个活动,当按下按钮2时,它将带您进行一个完美的活动。问题是,如果我要连续按这些按钮在两者之间导航,那么大量的活动会像一条线一样形成,当按下后退按钮时,你会自动浏览所有开放的活动。
我的问题是我是否实施了onDestroy方法,如果是这样的话怎么办呢?
我可以覆盖后退按钮,让我直接回到第一个活动吗?
答案 0 :(得分:1)
我的问题是我是否实现了onDestroy方法,如果是这样的话怎么办呢?
每当您转到下一个活动时,您都可以调用finish()
Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
finish();
Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);
finish();
我可以覆盖后退按钮直接让我回到活动状态 一个,没有进一步?
在Activity2
,您可以在onBackPressed
中呼叫onClick
,如
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
@Override
public void onBackPressed(){
// do what ever you want before you back to previous activity
super.onBackPressed();
// call super.onBackPressed(); or finish();
}
答案 1 :(得分:0)
实现如下所示的意图:
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
当新活动开启时,之前的活动将被关闭。
答案 2 :(得分:0)
假设您将使用以下
进行第二项活动 button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent to_second=new Intent(FirstActivity.this,SecondActivity.class);
startActivity(to_second);
}
});
现在在您的第二个活动中执行以下操作
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
button2将完成您的第二个活动并再次恢复您的第一个活动,您可以再次单击按钮1打开第二个活动,然后圆圈继续。
答案 3 :(得分:0)
嗯,您可以在launchMode="singleInstance"
中同时开展AndroidManifest
次活动。您可以通过onNewIntent()
来电发送内容。
请勿致电super.onBackPressed()
,因为它会导致finish()
被调用,只需启动另一项活动。
如果您不需要重新创建活动,可以使用此解决方案,否则请使用CLEAR_TOP&等