求助,我又调试过了,只要Intent.setAction();操作过后,就不能取消闹铃了,但是不Intent.setAction();的话,数据没有办法传送!现在有什么办法保证数据传送么?

解决方案 »

  1.   

      
    public void onClick(View v) {  
       // TODO Auto-generated method stub  
       Intent intent = new Intent(Test.this,AlamrReceiver.class);  
       PendingIntent pi = PendingIntent.getBroadcast(Test.this, 0, intent, 0);  
       AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);  
       am.cancel(pi);    
      }  
      

  2.   

    抱歉啊,各位这段时间有点忙,没时间上论坛,关于这个问题,我后来仔细看了下android帮助文档,发现是pendingIntent的问题,public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
    最后一个参数flags有4种,只有当flags是FLAG_UPDATE_CURRENT是更新以前的pendingIntent,这样就可以传参数了(不需要Intent.setAction,如果不是这个Flag,而又没有Intent.setAction的话,传递的参数都会变成空值),至于为什么Intent.setAction后为什么Cancel不了,我觉得应该是取消时android 默认找的不是原来的PendingIntent,而是找了一个新的PendingIntent来替代,所以就算你识别闹铃id对也取消不了,兴趣的可以试验下,不知道这算不算Bug,哈哈
      

  3.   


    是不是只有设置相同的intent才能取消?
    如果开机之后想把之前设置的都set回去alarmManager,应该怎么做啊。。
      

  4.   

    你好,另一个Activity也可以取消在其他Activity中设置的闹铃吗?貌似不行哦,他们的Intent都不一样了。能否和我说一下吗?谢谢。
      

  5.   

    原来是我打错了,intent setAction也可以取消的,不知道楼主怎么不能取消的