我從一個按鈕,點擊特定活動打開發送菜單泄露IntentReceiver:從共享菜單
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, "meh");
try {
startActivity(Intent.createChooser(i, "pfft"));
} ...
工作正常,但打的時候「返回」鍵,關閉它,logcat的說
Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
沒有其他的事情發生 - 應用程序繼續運行沒有問題。
搜索說,顯然上面的代碼已經註冊了一個BroadcaseReceiver,並且它需要在onResume(或onPause)過程中註銷(通過unregisterReceiver)。註銷接收者的簽名表示單個參數應該是BroadcastReceiver實例(有意義)。
我的問題是 - 哪裏是對BroadcastReceiver的引用? AFAICT用於打開菜單的方法不會返回BroadcastReceiver - 我如何找到並引用合適的一個來取消註冊?
TYIA
(要注意的是,我調試運行在三星Galaxy SII,並this thread表明它可能是一個與設備相關的bug?)
我與我的nexus s有同樣的問題4.0.4 – 2012-04-09 21:40:38
@PedroRainho我從來沒有得到這個解決 - 如果你找到答案,請回發。謝謝。 – momo 2012-04-10 15:08:18