Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 完成事务后完成所有活动_Android - Fatal编程技术网

Android 完成事务后完成所有活动

Android 完成事务后完成所有活动,android,Android,我有一套相互协调的活动来完成一些交易。 事务完成后,我将再次重定向到新事务的第一个活动… 我想要的是在完成交易后。当我被重定向到第一个活动时,当我按下后退键时,应用程序应该关闭,即,我不想看到上一个交易,它应该显示为应用程序刚刚启动。。 应该怎么做 另外,我不想在事务进行时执行finish()活动…在事务完成后,只有上一个事务中的所有活动应该被终止… 而且startActivityForResult()也不能解决我的问题 请给出您的答案。为什么不覆盖按下的后退按钮方法,然后按照您希望的方式执行任

我有一套相互协调的活动来完成一些交易。
事务完成后,我将再次重定向到新事务的第一个活动…
我想要的是在完成交易后。当我被重定向到第一个活动时,当我按下
后退键时,应用程序应该关闭,即,我不想看到上一个交易,它应该显示为应用程序刚刚启动。。
应该怎么做

另外,我不想在事务进行时执行
finish()
活动…在事务完成后,只有上一个事务中的所有活动应该被终止…
而且
startActivityForResult()
也不能解决我的问题


请给出您的答案。

为什么不覆盖按下的
后退按钮
方法,然后按照您希望的方式执行任何操作。覆盖
onBackPressed()
方法,如果您希望应用程序再次启动,则创建一个启动您的第一个活动的意图,或者如果您想关闭应用程序(但您也不想这样做),则执行
finish()

一种简单的方法:

在第一个活动中,使用公共静态变量

并从其他活动mainActivity.VariableName=“任意”中更改它们 当您返回到主活动时,您将获得所需的所有数据。

使用以下步骤:

  • 在第一个活动中使用一个静态布尔变量

    公共静态布尔应用程序=false

  • 在FirstActivity中重写onBackPressed方法,如

    public void onBackPressed()
    {
        super.onBackPressed();
    
        FirstActivity.killApplication = true;
    
    }
    
  • 在所有活动中重写onResume方法,如

     protected void onResume()
     {      
         if (FirstActivity.killApplication) 
         {
             finish();
         }
     }
    
  • 在FirstActivity onCreate()方法中设置killApplication=false


  • 您可以注册广播接收器并发送广播。这样可以安全地启动另一个活动,而不会丢失数据