如何在android应用程序中添加会话?
我正在制作一个android应用程序,其中有不同的活动连接到Home(MainActivty)活动,反之亦然。每当我在主页活动中按back键时,我都要关闭我的应用程序。但它把我带到了以前的活动,它是从那里来的。我怎样才能做到这一点。请有人在这方面帮助我,我是新的机器人。谢谢 这是我的密码:如何在android应用程序中添加会话?,android,android-activity,Android,Android Activity,我正在制作一个android应用程序,其中有不同的活动连接到Home(MainActivty)活动,反之亦然。每当我在主页活动中按back键时,我都要关闭我的应用程序。但它把我带到了以前的活动,它是从那里来的。我怎样才能做到这一点。请有人在这方面帮助我,我是新的机器人。谢谢 这是我的密码: btn_daily.setOnClickListener(new View.OnClickListener() { @Override public void onCli
btn_daily.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityA.class);
startActivity(i);
}
});
btn_health.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityB.class);
startActivity(i);
}
});
btn_diet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityC.class);
startActivity(i);
}
});
btn_exercise.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityD.class);
startActivity(i);
}
});
btn_yoga.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityE.class);
startActivity(i);
}
});
btn_help.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ActivityF.class);
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
dialogOnBackPress();
return true;
}
return super.onKeyDown(keyCode, event);
}
protected void dialogOnBackPress() {
new AlertDialog.Builder(this)
.setTitle("Exit Alert !!")
.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}
在
on backpressed
方法中使用此行
startActivity(new Intent(currentActivity.this,HomeActivity.class"));
finish();
我认为这是因为您没有添加
intent标志
试试这个
除了
MainActivity
,其他活动似乎也有一些机制可以导航到其他活动。因此,在导航到其他活动时,不要忘记使用finish()
销毁当前活动
如果您的应用程序有其他机制,比如有一个home(主页)按钮,可以从任何导航活动进入主屏幕,那么此时请使用FLAG\u activity\u CLEAR\u TOP
FLAG打开main activity
因此,通过这样做,您将不会有额外活动的后台堆栈,并且main活动的“后退”按钮将关闭应用程序
编辑:对于您在评论中提到的场景,您必须在单击主页按钮时使用以下代码
btn_home.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(CurrentActivity.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
});
它在工作。。。。但是,当我第一次再次启动应用程序并在第二次尝试时成功启动时,start会给出一条错误消息“不幸的是,应用程序已停止”。如何删除此错误。如果它正在工作,请向上投票回答:D你能发布日志cat错误吗?谢谢你的帮助…你的答案有一半是正确的,剩下的部分,我想出来了。是的..你是对的,有一个主页按钮可以将你从任何导航活动带到主屏幕,那么我必须为此做什么?谢谢你的帮助。。。。现在我明白了旗子活动的概念。这就是我想要的东西……:)@Zohaib太好了。需要注意的一点是,在使用这种机制时,在导航到其他活动时,不能完成MainActivity或HomeActivity。
btn_home.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(CurrentActivity.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
});