Android 如何设计活动以正确使用相机检索图像

Android 如何设计活动以正确使用相机检索图像,android,Android,我刚刚开始在Android上开发,我正在看我的第一个应用程序,它是由一家外部供应商编写的,我们正在接管它的开发工作。该应用程序是最后一次在姜饼上运行(API级别10),我的任务是在果冻豆API 17上运行它。在使用API 17构建之后,当在Jelly Bean上运行时,应用程序中会出现新的bug(但如果在Gingerbread上运行,则不会出现新问题)。我需要帮助的是使用相机拍照,然后在应用程序中使用该照片。基本上有3项活动。GalleryPhoto->ResultActivity->Camer

我刚刚开始在Android上开发,我正在看我的第一个应用程序,它是由一家外部供应商编写的,我们正在接管它的开发工作。该应用程序是最后一次在姜饼上运行(API级别10),我的任务是在果冻豆API 17上运行它。在使用API 17构建之后,当在Jelly Bean上运行时,应用程序中会出现新的bug(但如果在Gingerbread上运行,则不会出现新问题)。我需要帮助的是使用相机拍照,然后在应用程序中使用该照片。基本上有3项活动。GalleryPhoto->ResultActivity->Camera活动

GalleryPhoto在其onCreate()中创建ResultActivity:

ResultActivity从其onCreate()创建摄影机活动:

下面是ResultActivity onActivityResult方法的结果:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (resultCode == RESULT_OK) {
   File file = getFile();
   try{         
  mPicture = Media.getBitmap(getContentResolver(), Uri.fromFile(file));
      this.finishActivity(requestCode);
  finish();
}

我已经调试了这个应用程序,可以看到ResultActivity被多次创建和销毁。因此,当调用ResultActivity onCreate()时,将再次调用摄影机意图,摄影机将重新启动。这在调用onActivityResult()方法后发生。在Android Gingerbread上运行时,onActivityResult完成后,它将返回GalleryPhoto onResume()方法,返回的图像将显示在屏幕上。我认为这个设计有很多缺陷,因为从onCreate()启动相机意图似乎是错误的,因为根据Android文档,它可以被多次调用,但我不知道应该如何设计。有人能告诉我启动照相机活动的正确方法吗?因为它不应该在onCreate()中启动,并且可以返回GalleryPhoto活动吗?

这里的“正确”是什么意思?Android上还有哪些方法“不恰当地”返回图像?我的意思是,设计活动的正确方法是什么,这样我就不会有这个问题了。我是Android开发的新手,所以我不知道该怎么做。
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getFile())            
    startActivityForResult(Intent.createChooser(intent, "Camera"),CAMERA_CALL);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (resultCode == RESULT_OK) {
   File file = getFile();
   try{         
  mPicture = Media.getBitmap(getContentResolver(), Uri.fromFile(file));
      this.finishActivity(requestCode);
  finish();
}