Установка таймаута и завершение действия Activityforresult - PullRequest
0 голосов
/ 03 июля 2018

Я хотел бы знать, есть ли какой-нибудь способ установить тайм-аут для намерения, запускаемого через startActivityForResult, поэтому, когда время истекло, некоторые действия могут быть выполнены с действием упомянутого намерения (в моем случае его завершение).

Кажется, что нет никакого прямого способа установить тайм-аут непосредственно для Intent, но это не слишком беспокоит, так как, я думаю, я мог бы создать CountDownTimer, который в onFinish () вызвал бы код для завершения намерения.

Проблема в том, что я не вижу способа завершить этот ActivityForResult.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 04 июля 2018

Ну, я наконец-то решил проблему, действительно, это было не очень сложно.

Для моего конкретного случая INTENT_PICK следующий код действителен, чтобы остановить действие через 2 минуты:

final int RQS_PICKCONTACT = 1;

[...]
Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);

                        startActivityForResult(intentPickContact, RQS_PICKCONTACT);

                        mcd = new CountDownTimer(120000, 10000) {

                            public void onTick(long millisUntilFinished) {

                            }

                            public void onFinish() {
                                try
                                {
                                    finishActivity(RQS_PICKCONTACT);

                                }
                                catch (Exception ex)
                                {

                                }
                            }

                        }.start();
...