gpt4 book ai didi

java - Android:第二次调用 onActivityResult 抛出错误

转载 作者:行者123 更新时间:2023-12-01 15:19:14 26 4
gpt4 key购买 nike

在我的应用程序中,当我单击按钮时,它会捕获一些图像。当我第一次单击此按钮时,相机 Intent 打开,然后应用程序调用 onActivityResult,然后应用程序调用 onResume 方法,一切正常。但是,当我第二次单击按钮时,应用程序会调用相机 Intent ,但在该应用程序调用 onCreate 方法然后调用 onActivityResult 方法之后。我不明白为什么程序会调用 onCreate 方法。因此我的程序会抛出一些错误。

代码(当单击按钮时调用 addPhoto 方法):

protected void addPhoto() {
System.out.println("*** addPhoto() ***");

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
out1 = Environment.getExternalStorageDirectory(); // out1 is initialized as File out1 = null;
photoDateString = new DateClass().getCurrentDateAndTime();//this line give current date and time as photo name
out1 = new File(out, "xxx/images/" + photoDateString + ".jpg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out1));
startActivityForResult(i, CAMERA_REQUEST);

System.out.println("*** End of addPhoto() ***");
}

代码(onActivityResult):

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("*** onActivityResult() ***");

if (out1 != null && out1.exists()) {
// some code
}
//some code
System.out.println("*** End of onActivityResult() ***");
}

因为程序在 onActivityResult 之前调用 onCreate 方法,因此该行抛出错误 if (out1 != null && out1.exists()) {

我不知道我需要做什么。

错误消息:

java.lang.RuntimeException: Unable to resume activity {com.pxxl.android.lxxxy/com.pxxl.android.lxxxy.FirstActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=null} to activity {com.pxxl.android.lxxxy/com.pxxl.android.lxxxy.FirstActivity}: java.lang.NullPointerException

最佳答案

您似乎没有在 Activity 生命周期回调中保存 out1。使用 onSaveInstanceState()onRestoreInstanceState() 保存/恢复其值。

以下是有关 Activity 状态处理的更详细说明:Saving Activity State .

关于java - Android:第二次调用 onActivityResult 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com