关于android广播的问题 初学菜鸟欢迎各位高手指点谢谢了

小孩子纳西 发布于 2012/12/22 14:26
阅读 187
收藏 0

下面的代码主要出现以下几个问题:1、如果添加两个提醒的话只会出现第二个提醒,第一个提醒不出来

2、在主程序中输入了提醒的内容,但如果在上一个广播提醒后再添加内容,等到了时间出来的确是第一次的时候输入的内容。请各位高手给看看

//在主程序中设置通知提示
 private void setAlarm(boolean flag){
  final String BC_ACTION="cn.itcast.bwl.TaskReceiver";
  //获得alarmManager实例
     final AlarmManager am=(AlarmManager) getSystemService(ALARM_SERVICE);
     //实例化Intent
     Intent intent=new Intent();
     //设置Intent action属性 带参数
     intent.setAction(BC_ACTION);
     String w;
     w=beedittext.getText().toString();
     intent.putExtra("msg", w);
  //实例化PendingIntent
     final PendingIntent pi=PendingIntent.getBroadcast
       (getApplicationContext(), 0, intent, 0);
     //获得系统时间
     final long time1=System.currentTimeMillis();
     Calendar c=Calendar.getInstance();
     c.set(mYear, mMonth, mDay, mHour, mMinute);
     long time2=c.getTimeInMillis();
     if(flag&&(time2-time1)>0&&x==1){
     am.set(AlarmManager.RTC_WAKEUP, time2, pi);      
     }else{am.cancel(pi);}
 }

 

public class TaskReceiver extends BroadcastReceiver {
   /*
    * 广播接收器代码,定时提醒广播
    * @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
    */
 @Override
 public void onReceive(Context context, Intent intent) {
  // TODO Auto-generated method stub
  
  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  intent.setClass(context, AlarmActivity.class);
  context.startActivity(intent);

 }

}

//提示广播

public class AlarmActivity extends Activity {
       public static final int ID=1;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  Button alarmbutton;
  TextView alarmtext;
  final String msg;
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.alarm);
  alarmbutton=(Button)this.findViewById(R.id.alarmbutton);
  alarmtext=(TextView)this.findViewById(R.id.alarmtext);
  //获得NotificationManager实例
  String service=Context.NOTIFICATION_SERVICE;
  final NotificationManager nm=(NotificationManager)getSystemService(service);
  //实例化Notification
  Notification n=new Notification();
  //设置显示提示信息,该信息也会在状态栏显示
   msg=getIntent().getStringExtra("msg");
  //显示时间
  n.tickerText=msg;
  alarmtext.setText(msg);
  //设置声音提示
  //n.sound=Uri.parse("file:///sdcard/fallbackring.ogg");
  //设置震动
  n.defaults|=Notification.DEFAULT_VIBRATE;
  long[] vibrate={0,50,100,150};
  n.vibrate=vibrate;
  //发出通知
  nm.notify(ID,n);
  //取消通知
  alarmbutton.setOnClickListener(new OnClickListener(){

   public void onClick(View v) {
    // TODO Auto-generated method stub
    nm.cancel(ID);
    finish();
    
   }
  });
 }
      
}

 

加载中
返回顶部
顶部