Повторите метод с OnActivityResult каждые X секунд

У меня есть метод, который делает снимок, а затем в onActivityResult переходит к другому действию для последующего анализа изображения. Все идет нормально.

Моя проблема в том, что когда я использую обработчик для повторения процесса каждые 10 секунд, вызывается метод, но он будет делать только фотографии автоматически, не переходя к другой деятельности. Я предполагаю, что когда метод вызывается снова автоматически, onActivityResult никогда не вызывается. У кого-нибудь есть подсказка, в чем может быть проблема?

takePhotoBtn.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v) {
                    TakePhoto();
        }
    });

private void TakePhoto() {
    Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File imagepath = new File(getFilesDir(), "images");
    File newFile = new File(imagepath, ".jpg");
    if (newFile.exists()) {
        newFile.delete();
    }else {
        newFile.getParentFile().mkdir();
    }
    selectedPhotoPath = getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileprovider", newFile);

startActivityForResult(captureIntent, TAKE_PHOTO_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == TAKE_PHOTO_REQUEST_CODE && resultCode == RESULT_OK) {
            InputStream inputStream;
            try {
                inputStream = getContentResolver().openInputStream(selectedPhotoPath);
                bundle = new Bundle();
                bundle.putParcelable(KEY_BITMAP, selectedPhotoPath);
            }catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(this, "Unable to open image", Toast.LENGTH_LONG).show();
            }
        }
    Intent intent = new Intent(this, Activity.class);
    intent.putExtras(bundle);
    startActivity(intent);
handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            TakePhoto();
            handler.postDelayed(this, 10000);
        }
    },10000);    
}

Любая помощь будет высоко оценена!!! Спасибо

0 ответов

Другие вопросы по тегам