2011-12-21 55 views
3

因此,我试图制作一个应用程序,当收到每条文本消息时都会显示一个敬酒信息。我希望应用程序仅显示吐司,并且我正在使用此代码来显示它,但是当应用程序运行时出现异常错误。我正在使用此代码如何为广播接收器定义一个IntentFilter

BroadcastReceiver BR = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Toast.makeText(context, "testing", Toast.LENGTH_SHORT).show(); 

     } 
    }; 


    IntentFilter filter = new IntentFilter(); 

    registerReceiver(BR, filter); 

我很确定这是意图过滤器,但我不确定。

+1

什么是哟你的logcat输出? – 2011-12-21 04:35:59

+0

你最好还是发布你的logcat。 – 2011-12-21 05:01:12

+0

什么异常错误?发布堆栈跟踪。 – 2011-12-21 05:01:23

回答

1

您必须在清单中输入您的broadcastreceiver,然后添加意图过滤器,以便为我们的活动添加。在运行时也可能。

0

您应该创建单独的类,它扩展了BroadcastReceiver ,然后重写onRecieve方法。

这里,AlarmMain.this是主类和 OneShotAlarm.class延伸BroadcaseReceiver:

@Override 
     public void onReceive(Context context, Intent intent) { 
      Toast.makeText(context, "testing", Toast.LENGTH_SHORT).show(); 

     } 

你可以叫onRecieve()按如下:

Intent intentAlarm = new Intent(AlarmMain.this, OneShotAlarm.class); 
operation = PendingIntent.getBroadcast(AlarmMain.this, 0, intentAlarm, 0); 

alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, objDate.getTime(), operation); 

你可以试试以下,但它是可选的(在AndroidManifest.xml中包含以下标签)

<receiver 
    android:name="com.android.alarm.OneShotAlarm" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver>