11
Android文檔將Intent定義爲「包含要執行的操作的抽象描述的一組信息」。這表明,如果需要,您應該可以多次重複使用一個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)
在代碼中的多個地方呢?如果同一個意圖啓動兩次會發生什麼?
什麼時候你會重用一個'意圖'的例子?我有時會創建一個'Intent'對象,然後在'Activity'的不同位置使用它,具體取決於滿足哪些條件以及何時滿足條件。不知道這是否有幫助... – codeMagic 2013-04-29 18:06:18
我的例子是請求藍牙訪問,它啓動一個彈出窗口詢問用戶確認或拒絕藍牙。這可能發生在幾個不同的地方。如果我們使用意圖和藍牙成功打開,但後來藍牙關閉在其他地方,我們想要再次請求。因爲我們只是想發送相同的請求,所以使用同一個對象似乎最清晰。 – maria1nes 2013-04-29 18:12:55
這對我來說似乎很合理,我沒有看到任何問題。但是,在某些情況下,您可能希望使用「Intent flags」來執行某些操作,例如清除堆棧中從此「Intent」啓動的任何類似任務 – codeMagic 2013-04-29 18:16:39