2011-06-22 171 views
1

我有一个扩展广播接收器的类。我的问题是,我将如何去调用另一个类中的这个活动......我试图为它创建一个意图,但我一直得到一个语法错误。这是启动广播接收机的另一种方式吗?如何启动广播接收器?

+1

你能提供你得到什么语法错误吗? –

+0

在谈论错误时,发布确切的错误描述和代码总是一个好主意。 – mibollma

+0

请发布您的清单文件和您调用的Intent代码。 – advantej

回答

2

你必须使用

Intent intent = new Intent("mypackage.myaction"); 
activity.sendBroadCast(intent); 

凡活动是启动你的广播接收器和意图,你的广播接收器的过滤器匹配清单档案中的意图之一。

你会做的东西是这样:

<receiver android:name="your broadcast receiver class" android:label="a name"> 
    <intent-filter> 
     <action android:name="mypackage.myaction" /> 
    </intent-filter> 
</receiver> 

问候, 斯特凡

+0

我的意图过滤器如何在清单中查找?对于广播接收者? – theITRanger22

2
IntentFilter filter = new IntentFilter("com.mydefinepackage.myactivity"); 
this.registerReceiver(new Receiver(), filter); 

声明这个私有类和myactivity活动中使用上面的代码。

private class Receiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     myOwnMethod(); 
    } 
} 

从任何其他活动执行此代码。 myOwnMethod将被调用。

Intent i =new Intent("com.mydefinepackage.myactivity"); 
sendBroadcast(i);