2013-02-06 72 views
1

我有一個應用程序,它在啓動後立即發送廣播,因此它可以刷新可用的圖像列表。這工作得很好直到今天(至少在我注意到這一點的時候)。當它使用sendBroadcast和ACTION_MEDIA_MOUNTED時,應用程序失去焦點

它仍然啓動,但一旦它調用意圖,焦點將轉移到主屏幕應用程序(默認或替換),並且不會返回。我沒有注意到我的Android手機是否已更新或其他。

這是導致我的麻煩線路:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 

我錯了在這裏做什麼?

+0

這是一個系統意圖行動,我不認爲你應該從你的應用程序發出它。 –

+0

你爲什麼認爲這適用?文檔(http://developer.android.com/reference/android/content/Context.html#sendBroadcast(android.content.Intent))並不告訴我它是受限制的。 – DigCamara

+1

意圖不受限制,行動是。如果你的應用程序沒有真正卸載/掛載Android分區,它不應該通過發送該Intent來混淆其他應用程序。假設啓動器(主屏幕應用程序)監聽此意圖,並刪除/添加安裝在SD卡上的應用程序的圖標。此廣播將導致啓動器刷新其應用程序列表,而沒有任何實際需要。 –

回答

1

像@ User117說,

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 

可能不應該由我的應用程序使用。我找不到能夠明確告訴程序員不要使用這種廣播的文檔,但正如他指出的那樣,Android操作系統的實現通常應該保持對現有項目的良好跟蹤,特別是如果它得到良好行爲的應用程序的幫助。

最後,我消除了來自我的應用程序的電話。

相關問題