首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alarmmanager没有广播,或者广播接收器接收不到广播

Alarmmanager没有广播,或者广播接收器接收不到广播
EN

Stack Overflow用户
提问于 2012-07-05 01:35:04
回答 1查看 810关注 0票数 1

我已经创建了一个方法,通过按下我的主活动下的保存按钮来调用它,如下所示:

代码语言:javascript
复制
public  void scheduleAlarms(Context ctxt) {
        String [] calvalue = (MessageDelay.getSelectedItem().toString()).split(" ",   3);
        int H = Integer.parseInt(calvalue[1]);
        Log.v("Timer","Timer"+H);

        switch (H){

        case 9:
                H=9;
                break;
        case 12:
                H=12;
                break;

        case 3: 
                H=15;
                break;
        case 5: 
                H=17;
                break;
        case 6: 
                H=18;
                break;
        case 8: 
                H=20;
                break;

        }
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.HOUR_OF_DAY, H);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

          AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
          Intent i=new Intent(getApplicationContext(), AlarmReceiver.class);
          PendingIntent pi=PendingIntent.getService(getApplicationContext(), 0, i, 0);

          mgr.setRepeating(AlarmManager.RTC,cal.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pi);
          Log.v("Timer","Timer");
        }

然后我添加了一行代码,如下所示:

代码语言:javascript
复制
<receiver android:process=":remote" android:name=".AlarmReceiver"></receiver>

然后创建一个接收器类,如下所示:

代码语言:javascript
复制
public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            Toast.makeText(context, "broadcast received", Toast.LENGTH_SHORT).show();
            // Set up new intent
            Intent newIntent = new Intent(context, SendMessage.class);

            // Start new intent
            context.startService(newIntent);
        } catch (Exception e) {
            Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
    }
}

但由于某种原因,当我在模拟器上测试它时,我无法接收到任何广播:

有人能告诉我我哪里做错了吗?

非常感谢你提前

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-05 11:17:20

您正在为服务使用PendingIntent,但希望收到广播。尝试使用PendingIntent.getBroadcast()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11333396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档