如何在Android中停止闹钟

前端之家收集整理的这篇文章主要介绍了如何在Android中停止闹钟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的主要活动中有一个按钮.在其onclick监听器调用功能设置闹钟.闹钟正在工作,但我无法阻止它.可以帮助一个人

MainActivity.java

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            setalarm();

        }


    });
    }
    private void setalarm() {

         Calendar cal=Calendar.getInstance();
         // cal.set(Calendar.MONTH,6);
         // cal.set(Calendar.YEAR,2013);
        //   cal.set(Calendar.DAY_OF_MONTH,12);
           cal.set(Calendar.HOUR_OF_DAY,18);
           cal.set(Calendar.MINUTE,32);
            Intent intent = new Intent(this,Mote.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(),1253,intent,PendingIntent.FLAG_UPDATE_CURRENT|  Intent.FILL_IN_DATA);

            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

            alarmManager.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pendingIntent );
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,AlarmManager.INTERVAL_DAY,pendingIntent);
            Toast.makeText(this,"Alarm SET.",Toast.LENGTH_LONG).show();

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.activity_main,menu);
        return true;
    }

}

Mote.java

public class Mote  extends BroadcastReceiver{

    public void onReceive(Context context,Intent intent) {
          Toast.makeText(context,"Alarm worked.",Toast.LENGTH_LONG).show();
        int icon = R.drawable.ic_launcher;
         CharSequence tickerText = "Hello you have to take medicine I am Nitin Sharma";
            long when = System.currentTimeMillis();


        CharSequence contentTitle = "My notification";
        CharSequence contentText = "Hello World!";


        final int NOTIF_ID = 1234;
        NotificationManager notofManager = (NotificationManager)context. getSystemService(Context.NOTIFICATION_SERVICE);
        Intent notificationIntent = new Intent(context,Alset.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context,notificationIntent,0);
        Notification notification = new Notification(icon,tickerText,when );
        notification.setLatestEventInfo(context,contentTitle,contentText,contentIntent);
        notification.flags = Notification.FLAG_INSISTENT;
        notification.defaults |= Notification.DEFAULT_SOUND;
        notofManager.notify(NOTIF_ID,notification);



        Toast.makeText(context,Toast.LENGTH_LONG).show();

         Intent i = new Intent(context,Alset.class);
         i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         context.startActivity(i);

Alset.java

public class Alset extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activitystop); 
        Log.e("IM here ","Im here");

        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


                  Toast.makeText(Alset.this,"Stop the alrm now",Toast.LENGTH_LONG).show();

            }
    });

    }   


}

    }

    }

一旦报警开始,我将在接收机的OnReceive()中收到回叫,从那里我进入活动Alset,我保持停止按钮.如何阻止这里的闹钟
注意: – 我可以硬编码设置闹钟的时间

解决方法

您可以这样取消警报:
Intent intent = new Intent(this,Mote.class);
     PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),0);
     AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
     alarmManager.cancel(pendingIntent);

此外,您应该从设置闹钟的代码调用getBroadcast()中删除Intent.FILL_IN_DATA.

猜你在找的Android相关文章