从第二个活动中杀死后退按钮上的应用程序

时间:2015-04-15 17:05:08

标签: android kill

我有一项主要活动和第二项活动。在调用第二个活动时,我没有使用覆盖finish()。我在第二个活动onClick中有一个按钮,我需要杀死该应用程序。有没有办法在按钮点击时清除整个后栈?

4 个答案:

答案 0 :(得分:0)

您可以在启动第二个活动时将标志添加到意图中。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 1 :(得分:0)

您无法通过Android设计杀死整个应用程序。 清除整个backstack的唯一方法是使用必需的标志启动新的Activity。

如果你只想点击按钮,而不是第二个活动开始,我认为这里只有一个解决方法。

你应该在那个按钮点击调用第三个活动(空,只是存根),带有必需的标志:

Intent intent = new Intent(this, MockActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); //clear backstack
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); //user will not notice activity appear, instead of default animation, which look like starting other app.
startActivity(intent);

在此ThirdActivity中,在OnCreate()方法中,只需调用finish();

即可

你会得到什么结果?用户点击按钮后,整个应用程序将关闭,没有后台历史记录。 您还应该在清单android:noHistory="true"中添加到此ThirdActivity,因此它也不会出现在历史记录中。

答案 2 :(得分:0)

您可以尝试退出按钮,

    addQuitButtonListener();

    private void addQuitButtonListener(){
    Button appbtn = (Button) findViewById(R.id.quit);
    appbtn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
    System.exit(0);
    }});}

答案 3 :(得分:0)

您也可以使用startActivityForResult检查Wetherby开始第二个活动。第一个活动也应该在完成第二个活动时完成