2014-07-24 86 views
0

我試圖將broadcastReceiver的URI發送到Activity,但意圖從不會到達新活動。將URI廣播到活動

public void onReceive(Context context, Intent intent) { 
    String i = intent.getDataString(); 
    uri = Uri.parse(i); 
    Intent o = new Intent(context,Image.class); 
    o.putExtra("ImageUri", uri); 
    context.sendBroadcast(o); 
+0

您需要處理如何接收廣播。你不能在沒有聲明你收到它的地方發送它 –

+0

你是什麼意思? – user3856158

回答

0

不能使用sendBroadcast()Context直接與活動進行溝通。

+0

我如何溝通呢? – user3856158

+0

@ user3856158:您可以使用帶有'FLAG_ACTIVITY_REORDER_TO_FRONT'的'startActivity()'來啓動該活動,以便在實例已經存在的情況下重用該實例。如果活動不存在)或者onNewIntent()(如果活動已經存在,則作爲傳入的參數),你的活動可以在onCreate()方法中獲得額外的內容(通過'getIntent 。還有很多其他的可能性,特別是如果活動可能不存在(例如,如果數據存在則將數據傳遞給活動,否則顯示「通知」)。在broadcastReceiver中的startActivity是否爲 – CommonsWare

+0

?如果這是你的意思,它給了我一個錯誤,它是未定義的,因爲我擴展了broadcastReceiver,併爲了startActivity,你需要一個實際的活動 – user3856158