当我运行应用程序时,由于内存问题,活动被杀死。
我在我的活动中调用startActivityForResult()方法来启动摄像头。当调用活动在后台被杀死时,它显示异常行为。有些时候,在输入onRestoreInstance()之后,intent会返回onActivityResult()并返回结果。但在其他一些情况下,它在输入onRestoreInstance()后没有进入onActivityResult()。
任何人都可以解释一下为什么会发生这种情况。
答案 0 :(得分:0)
您可以使用此代码
运行新活动 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);
然后覆盖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
}
}
}
在您的新活动中,您可以使用此代码
获取传递的值 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();
//if you want to pass a value from this activity to you mainActivity use this
Intent returnIntent = new Intent(
"com.example.activity.MainActivity");
returnIntent.putExtra("id", streetID.intValue());
setResult(RESULT_OK, returnIntent);
finish();
因为你设置了使用过的setResult(RESULT_OK,returnIntent);
你的代码 if (resultCode == RESULT_OK) {
// Write your code on result ok return
}
被执行..干杯!!! :d