2014-07-24 87 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