【问题标题】:A close button that finishes all activities完成所有活动的关闭按钮
【发布时间】:2015-11-09 15:02:45
【问题描述】:

我的 android 应用程序中有 5 个活动,在最后一个活动中,我想要一个关闭按钮,通过一个一个完成每个活动来退出应用程序?

【问题讨论】:

  • 你应该展示一些你已经尝试过的代码。

标签: android android-activity activity-finish


【解决方案1】:

您可以执行以下步骤:

在您要退出的活动中执行以下操作:

Intent intent = new Intent(this, RootActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//this will clear all the stack
intent.putExtra("extra_exit", true);
startActivity(intent);
finish();

并在 RootActivity.class 的 onCreate 和 onNewIntent 中:

public void onCreate(Bundle savedInstance){
    ...
    if(!checkExtraToExit(intent)){
        //do activity initialization
        ...
    }
    ...
}

public void onNewIntent(Intent intent){
    if(!checkExtraToExit(intent)){
        super.onNewIntent(intent);
    }
} 

public boolean checkExtraToExit(Intent intent){
    if( intent.getBooleanExtra("extra_exit", false)){
        finish();
        return true;
    }
    return false;
}

【讨论】:

    【解决方案2】:

    把它写在你的 onclick 监听器中。它将关闭应用程序。

    System.exit(0);
    

    【讨论】:

    • 这将关闭应用程序,但我想一一关闭所有活动。
    • @SamiUlHaq:那么你必须使用服务。
    【解决方案3】:

    您是否想过调用startActivityForResult 并在onActivityResult 检查正确的代码和结果并调用finish

    【讨论】:

      【解决方案4】:

      使用以下代码

      Intent intent = new Intent(this, YourActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//this will clear all the stack
      intent.putExtra("sometext", true);
      startActivity(intent);
      finish();
      

      然后在 onCreate() 的 YourActivity 中写下以下几行

      if( getIntent().getBooleanExtra("sometext", false)){
          finish();
          return; // it will take you out
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-24
        • 2014-02-27
        • 2011-09-06
        相关资源
        最近更新 更多