2011-09-11 35 views
1

我有一个警铃下面的代码...问题检索意图额外

 public boolean onMenuItemClick(MenuItem item) { 
      Intent intent = new Intent(CalendarViewActivity.this, OneShotAlarm.class); 
      Bundle bun = new Bundle(); 
      bun.putString("data", "hello this is my message..."); 
      intent.putExtras(bun); 
      PendingIntent sender = PendingIntent.getBroadcast(CalendarViewActivity.this, 
        0, intent, 0); 

      // We want the alarm to go off 5 seconds from now. TODO 
      Calendar calendar = Calendar.getInstance(); 
      calendar.setTimeInMillis(System.currentTimeMillis()); 
      calendar.add(Calendar.SECOND, 5); 

      // Schedule the alarm! 
      AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
      am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 
      return false; 
     } 
    }); 
} 



public class OneShotAlarm extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO 
    Toast.makeText(context, "Alarm! " + intent.getExtras().getString("data"), Toast.LENGTH_SHORT).show(); 
} 

} 

报警正常熄灭,但“数据”额外不获取检索出于某种原因,并被设置为空。

感谢您的帮助!

回答

1

尝试:

Intent intent = new Intent(CalendarViewActivity.this, OneShotAlarm.class); 
intent.putExtra("data", "hello this is my message..."); 
PendingIntent sender = PendingIntent.getBroadcast(CalendarViewActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
+0

这解决了这个问题,谢谢 – Jonny

0

引文从文档的putExtra功能:

名称额外数据的名称,,包装前缀为

难道不是这个原因吗?