Изображение не возвращается, когда снимок сделан с камеры, вместо этого приложение закрывается, и я вижу домашний экран телефона, когда снимок сделан, и я нажимаю на кнопку «Готово» с камеры или нажимаю на крестик на камере.Я заметил, что метод onDestroy () фрагмента и родительская активность фрагмента вызывается, как только камера открывается.Я вижу приложение в фоновых задачах телефона.
android: configChanges = "direction | screenSize" Я пробовал выше в файле манифеста после Android: уничтожение активности после вызова намерения камеры
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setUpPermissions()
}
private fun setUpPermissions() {
if (!hasPermissions(activity, *PERMISSIONS)) {
ActivityCompat.requestPermissions(activity!!, PERMISSIONS, PERMISSION_ALL)
} else {
showDialogForCameraAndGallery()
}
}
private fun showDialogForCameraAndGallery() {
val builder = android.support.v7.app.AlertDialog.Builder(activity!!)
builder.setTitle("Select Option")
builder.setItems(options, DialogInterface.OnClickListener { dialog, item ->
if (options[item] == "Take Photo") {
dialog.dismiss()
openCamera()
} else if (options[item] == "Choose From Gallery") {
dialog.dismiss()
openGallery()
} else if (options[item] == "Cancel") {
dialog.dismiss()
}
})
builder.show()
}
private fun openCamera() {
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent,
CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Log.e(" on Activity called", " frgamnet$requestCode")
}
override fun onDestroy() {
Log.e(" ondestroy ", "of fragment");
super.onDestroy()
}
Родительский код активности
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e( " onActivity result ", "called");
}
@Override
public void onDestroy() {
Log.e(" desturo called", "activity");
super.onDestroy();
}