Android Camera Intent再次调用onCreate

时间:2014-06-23 23:16:38

标签: java android

我正在开发一个调用相机的应用程序,拍照并创建缩略图。它一直运作到现在......我不知道是什么原因,但现在当我拍照并点击" Save" (android默认情况下)调用onCreate方法。

因此,我的缩略图的负载不再起作用

我已经尝试修改我的Android清单:

<uses-feature android:name="android.hardware.screen.portrait" />
<activity
        android:name=".MyActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:screenOrientation="portrait">
    </activity>

onCreate仍在调用。

拍照的方法:

public void takePicture() {

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    FileHelper fileHelper = new FileHelper(this);
    fileUri = fileHelper.saveFile();
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
    // start the image capture Intent
    startActivityForResult(intent, ConstantsHelper.CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}

有没有办法阻止&#34; onCreate&#34;是在拍照后打来的?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有。您只需要修复代码,使其在自然的Activity生命周期中起作用。当另一个活动实例到达前台时,您的上一个活动实例是否会保持活跃状态​​取决于设备(应用程序可用的内存量,是否&#34;不要保留活动&#34;在开发人员下检查)选项等。)

这是一个完全有效的案例,并且预计会在平台上发生,并且如果它被杀死,您的Activity应该能够正确处理保存和恢复其状态。

无论您在onCreate()初始化的状态如何,只需确保将其保留在onSaveInstanceState()中,并在onCreate()再次发生时,检查savedInstanceState是否为非-空值。如果不是,请恢复您保存的状态并继续。