当我运行应用程序时,活动因内存问题而被终止。
我在我的活动中调用 startActivityForResult() 方法来启动相机。当调用活动在后台被杀死时,它显示出异常行为。有时,意图在输入 onRestoreInstance() 后返回到 onActivityResult() 并返回结果。但在某些其他情况下,它在输入 onRestoreInstance() 后没有输入 onActivityResult()。
谁能解释一下为什么会发生这种行为。
当我运行应用程序时,活动因内存问题而被终止。
我在我的活动中调用 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);
然后覆盖 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