Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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,在我的示例应用程序中,我有两个名为FirstActivity和SecondActivity的活动。在SecondActivity中,我想通过使用移动后退按钮通过intent传递一些数据,在这里我也想完成SecondActivity,但当我在SecondActivity中按下后退按钮时,它会让我返回到我的FirstActivity,但它不会完成SecondActivity。请帮助我如何完成第二个活动 public boolean onKeyDown(int keyCode, KeyEvent ev

在我的示例应用程序中,我有两个名为
FirstActivity
SecondActivity
的活动。在
SecondActivity
中,我想通过使用移动后退按钮通过intent传递一些数据,在这里我也想完成
SecondActivity
,但当我在
SecondActivity
中按下后退按钮时,它会让我返回到我的
FirstActivity
,但它不会完成
SecondActivity
。请帮助我如何完成
第二个活动

public boolean onKeyDown(int keyCode, KeyEvent event) 
     {
         if ((keyCode == KeyEvent.KEYCODE_BACK))
         {  
             Intent intent = new Intent(SecondActivity.this,FirstActivity.class);
             //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

             intent.putExtra("Data1", data1);
             intent.putExtra("Data2", data2);

             startActivity(intent);
             finish();   
         }
         return true;
     }

在第一个活动中使用
startActivityForResult
,在完成第二个活动之前,使用
setResult
方法。

您应该查看文档,了解哪些方法是正确的

@Override
public void onBackPressed() {
        super.onBackPressed();
        this.finish();
}
但是,在上面的示例中,
SecondActivity.this.finish()
应该可以工作。

也许可以工作:

// Back Button Press
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Intent intent = new Intent(SecondActivity.this,FirstActivity.class);
                //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                intent.putExtra("Data1", data1);
                intent.putExtra("Data2", data2);

                startActivity(intent);
                SecondActivity.this.finish();  
                return true;
        }
        return super.onKeyDown(keyCode, event);
    }

我认为这是一种完成活动;而不是完成();SecondActivity.this.finish();仅限其
finish()
。所以OP就在这里。你们是如何发起第二个活动的?我的意思是,您正在从第一个活动本身启动第二个活动?为什么不覆盖onBackPressed并发送广播意图,这不是最干净的解决方案,但我认为它可以避免您的问题