我想在用户点击后退按钮时关闭应用程序。我的流程是这样的
首次登录:
登录屏幕A->主页B. 现在我想在用户按下后退按钮时关闭应用程序。它将返回登录屏幕。我该怎么办?
答案 0 :(得分:3)
从Main page
活动Login
开始,完成login
页面。所以在活动堆栈中没有登录页面。因此,当您按下后退按钮时,从主页面将关闭应用程序。
答案 1 :(得分:3)
当您使用意图从A开始活动B时,请在开始活动后放置finish()
。这将从堆栈中删除作为登录页面的当前活动,当用户按下时,他将退出应用程序。
示例代码为:
Intent intent = new Intent((getApplicationContext(),B.class);
startActivity(intent);
finish();
答案 2 :(得分:2)
对于您用于进入其他活动的每个意图,您必须按照这种方式传递意图,只需将标记传递给下面及之后给出的每个意图使用 startActivity()开始活动你必须在下面给出的演示代码后添加完成()
Intent i=new Intent(firstActivity.this,secondActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
答案 3 :(得分:1)
这是对您的问题的类似讨论。 。Here
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Intent myIntent = new Intent(B.this, A.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear the backstack
startActivity(myIntent);
finish();
return;
}
以上代码解释HERE 只需清除活动堆栈,然后完成活动..那就是你的应用程序将被关闭。
答案 4 :(得分:1)
在您的第二个活动'B'中,您应该覆盖onBackPressed
方法以完成当前应用程序。所以你可以这样做:
@Override
public void onBackPressed() {
Toast.makeText(getBaseContext(),"Exiting application...",Toast.LENGTH_SHORT).show();
this.finish();
}
这件事对我有所帮助。我希望它对你也有所帮助。
答案 5 :(得分:1)
你可以完成活动,但你不能退出应用程序,因为android设计不是选择退出应用程序。相反,你可以称之为家庭意图带回家:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
答案 6 :(得分:0)
另一种方式是:
试试这个,在你的mainifest文件中为每个活动添加noHistory。
android:noHistory="true"
答案 7 :(得分:0)
OverRide方法
onBackPressed(){
//desired task like
//finish Activity here
}
并完成那里的活动