Android 当应用程序在后台被杀死时,onActivityResult()

Android 当应用程序在后台被杀死时,onActivityResult(),android,android-intent,background,android-activity,kill,Android,Android Intent,Background,Android Activity,Kill,当我运行应用程序时,由于内存问题,活动被终止 我正在活动中调用startActivityForResult()方法来启动相机。当调用活动在后台被杀死时,它表现出异常行为。有时,意图在输入onRestoreInstance()后返回onActivityResult(),并返回结果。但在其他一些情况下,在输入onRestoreInstance()之后,它没有输入onActivityResult() 任何人都可以解释为什么会发生这种行为。您可以使用此代码运行新活动 Intent i =

当我运行应用程序时,由于内存问题,活动被终止

我正在活动中调用startActivityForResult()方法来启动相机。当调用活动在后台被杀死时,它表现出异常行为。有时,意图在输入onRestoreInstance()后返回onActivityResult(),并返回结果。但在其他一些情况下,在输入onRestoreInstance()之后,它没有输入onActivityResult()


任何人都可以解释为什么会发生这种行为。

您可以使用此代码运行新活动

        Intent i = new Intent(this, DatabaseEditor.class);
        //You may pass value on another activity
        i.putExtra("xCoordinate", String.valueOf(o));
        i.putExtra("yCoordinate", String.valueOf(p));
        i.putExtra("scale", scaleTest);

        startActivity(i);   
    Bundle b = getIntent().getExtras();
    if (b != null) {
        editTextX.setText(String.valueOf(b.getString("xCoordinate")));
        editTextY.setText(String.valueOf(b.getString("yCoordinate")));
        editTextScale.setText(Float.toString(b.getFloat("scale")));
    }
然后覆盖onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

        if (resultCode == RESULT_OK) {

            // Write your code on result ok return
        }
        if (resultCode == RESULT_CANCELED) {
            // Write your code on no result return
        }
    }
}
在您的新活动中,您可以使用以下代码获取传递的值

        Intent i = new Intent(this, DatabaseEditor.class);
        //You may pass value on another activity
        i.putExtra("xCoordinate", String.valueOf(o));
        i.putExtra("yCoordinate", String.valueOf(p));
        i.putExtra("scale", scaleTest);

        startActivity(i);   
    Bundle b = getIntent().getExtras();
    if (b != null) {
        editTextX.setText(String.valueOf(b.getString("xCoordinate")));
        editTextY.setText(String.valueOf(b.getString("yCoordinate")));
        editTextScale.setText(Float.toString(b.getFloat("scale")));
    }
如果要返回到上一个活动,只需调用finish()

由于您设置了使用的setResult(RESULT_OK,returnIntent);那么你的代码是什么

        if (resultCode == RESULT_OK) {

            // Write your code on result ok return
        }

执行。。干杯D

打印堆栈跟踪,以便其他人能够了解您的确切问题。我打电话是为了打开摄像头捕捉视频。输入取决于您传递的结果。。。。确保在第二个意图终止之前传递了一个值setResult(RESULT_OK,returnIntent);在这种情况下,调用方活动中没有调用activityOnResult。您是否可以发布代码以便我们可以分析它。。。只有onactivityresult和您的第二个活动。。。。