Я заметил очень странное поведение своего устройства.Samsung Galaxy Tab 2 10.1 убивает процесс после того, как сделал снимок с камеры
создать новое намерение с действием MediaStore.ACTION_IMAGE_CAPTURE
Тогда я начать activty за результат. Но на данный момент я делаю снимок с камеры, мое приложение исчезает из процессов в перспективе DDMS. Затем через несколько секунд он снова запустится.
Что интересно - onActivityResult
называется правильно и получает изображение. Но у меня есть некоторые синглтоны, которые содержат некоторые значения в своих полях. После перезапуска процесса эти одноэлементы повторно инициализируются и теряют все значения.
На других устройствах нет проблем - ни планшеты, ни телефоны.
Это известная ошибка? Ho, чтобы предотвратить перезапуск процесса на Galaxy Tab 2 10.1?
Заранее благодарен!
UPDATE: Ниже мой код, который начинает камеру Intent
private void startCameraIntent() {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_";
File albumFile;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){
albumFile = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), FOLDER_NAME);
} else {
albumFile = new File(Environment.getExternalStorageDirectory()+CAMERA_DIR+FOLDER_NAME);
}
if (albumFile != null){
if (!albumFile.mkdirs()){
if (!albumFile.exists()){
showToast(getApplicationContext().getString(R.string.sFailedToCreateDirectory));
return;
}
}
}
File imageFile = null;
try {
imageFile = File.createTempFile(imageFileName, JPEG_FILE_SUFFIX, albumFile);
mCurrentPhotoPath = imageFile.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
fileUri = Uri.parse(mCurrentPhotoPath);
startActivityForResult(cameraIntent, ACTION_CAPTURE_IMAGE);
} else {
showToast(getApplicationContext().getString(R.string.sSDNotReady));
}
}
Покажите нам свой код. –
Включили ли вы «Не выполнять действия» в настройках разработчика в приложении «Настройки»? – fifarunnerr
Возможно, приложение для камеры требует большого количества памяти, и система убивает приложения, среди прочих ваших. – marcinj