我正在使用以下代码从相机拍摄照片。我在startActivityForResult
课程中对ACTION_IMAGE_CAPTURE
意图使用CameraActivity
。相机可以打开,可以拍照。但是当它回到CameraActivity
时,它会进入CameraActivity
的不同实例。我在这两种方法中打印hascode值,它给出了不同的值。我不明白为什么它会创建两个活动。有谁知道这个错误?
public class CameraActivity extends Activity{
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState == null) {
setContentView(R.layout.fragment_imageview);
imageView = (ImageView)findViewById(R.id.imageview);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
System.out.println(this.hashCode());
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, 2);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 2 && resultCode == RESULT_OK){
System.out.println(this.hashCode());
Bundle args = data.getExtras();
Bitmap bitmap = (Bitmap)args.get("data");
imageView.setImageBitmap(bitmap);
}
}
}
答案 0 :(得分:3)
系统可能会在相机应用程序运行时破坏您的活动。当相机应用程序启动时,您的应用程序处于后台,因此它有资格被销毁。您可以通过向onDestroy覆盖添加日志记录来测试它。