2013-04-29 4 views
11

Документы Android определяют намерение как «пакет информации, содержащий абстрактное описание выполняемой операции». Это говорит о том, что вы должны иметь возможность повторно использовать один объект Intent несколько раз, если это необходимо, но я не видел примеров, показывающих, что это случай/безопасен. Есть ли причина, чтобы не сделать следующее:Можно ли повторно использовать намерение?

private final Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
... 
protected void onCreate(Bundle savedInstanceState) { 
    enabledBluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
    ... 
} 

, а затем вызвать startActivityForResult(enableDiscoverableIntent, REQUEST_ENABLE_BT_DISCOVERY) в нескольких местах в коде? Что произойдет, если одно и то же намерение начнется дважды?

+0

Каков пример того, когда вы будете использовать «намерение»? Иногда я создаю объект «Intent», а затем использую его в разных местах в «Деятельности» в зависимости от того, какие условия выполняются и когда. Не знаю, помогает ли это вообще ... – codeMagic

+0

В моем примере запрашивается доступ к Bluetooth, который запускает всплывающее окно с просьбой подтвердить или отклонить Bluetooth. Это может произойти в нескольких разных местах. Если мы используем намерение, и bluetooth включается успешно, но затем Bluetooth отключается в другом месте, мы хотим запросить его снова. Использование одного и того же объекта кажется самым чистым, так как мы просто хотим отправить тот же запрос. – maria1nes

+0

Это кажется мне разумным, и я не вижу никаких проблем. Однако в некоторых ситуациях вы можете использовать флаги Intent для выполнения таких задач, как очистка любых похожих задач, которые были запущены из этого «Intent» из стека – codeMagic

ответ

7

Это абсолютно безопасно, если вы хотите использовать его, чтобы сделать то же самое, поскольку Intent - это не более чем куча данных и инструкций. Если вы хотите использовать один и тот же объект Intent для разных целей (например, у вас есть куча вкладок и пытайтесь установить вкладки, повторно использующие одно и то же намерение, но изменяя активность, которую они запускают), вы должны быть более осторожными, d рекомендуем повторно создать новый объект Intent для каждого.

Смежные вопросы