2013-04-29 21 views
11

Android belgeleri, bir Amacı "gerçekleştirmek için bir işlemin özet açıklamasını içeren bir bilgi paketi" olarak tanımlar. Bu, gerektiğinde birden çok kez tek bir Intent nesnesini yeniden kullanabilmenizi önerir, ancak bunu yapmak/yapmak güvenli olduğunu gösteren hiçbir örnek görmedim. SonraBir amacı yeniden kullanmak güvenli midir?

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

ve kod birden fazla yerde startActivityForResult(enableDiscoverableIntent, REQUEST_ENABLE_BT_DISCOVERY) çağırır: aşağıdakileri yapın DEĞİL için bir sebep var mı? Aynı niyet iki kez başlatılırsa ne olur?

+0

"Intent" in ne zaman yeniden kullanılacağını gösteren örnek nedir? Bazen bir "Intent" nesnesini oluşturabilirim, sonra hangi koşulların ne zaman ve ne zaman yerine getirildiğine bağlı olarak "Etkinlik" içindeki farklı yerlerde kullanırım. Hiç yardımcı olur mu bilmiyorum ... – codeMagic

+0

Örneğim, Bluetooth'u onaylamak veya reddetmesini isteyen bir pop-up'ı başlatan bluetooth erişimini istiyor. Bu birkaç farklı yerde olabilir. Amacımızı kullanırsak ve bluetooth başarılı bir şekilde açılırsa, ancak daha sonra bluetooth başka bir yerde kapatılırsa, tekrar talep etmek isteriz. Aynı talebi kullanmak, sadece aynı isteği göndermek istediğimizden, en temiz görünüyor. – maria1nes

+0

Bu bana göre makul görünüyor ve herhangi bir sorun görmüyorum. Bununla birlikte, bazı durumlarda, "Intent" işlevini, bu "Intent" in yığından başlatılmış benzer görevleri temizlemek gibi şeyler yapmak için kullanmak isteyebilirsiniz. – codeMagic

cevap

7

Aynı şeyi yapmak için kullanmak istediğinizde tamamen güvenlidir, çünkü bir Intent bir dizi veri ve talimattan daha fazla değildir. Farklı amaçlar için aynı Intent nesnesini kullanmak isterseniz (örneğin, bir grup sekmeniz var ve sekmeleri aynı amacı yeniden kullanmayı, ancak başlattıkları etkinliği değiştirmeyi deneyin) daha dikkatli olmalısınız. d Her biri için yeni bir Intent nesnesini yeniden oluşturmanızı öneririz.

İlgili konular