温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中如何使用Alarm

发布时间:2021-06-26 15:32:00 来源:亿速云 阅读:151 作者:Leah 栏目:移动开发

Android中如何使用Alarm,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

AlarmManager来设置自己的闹钟,其中我们主要用到的类有

import android.app.AlarmManager;    import android.app.PendingIntent;    import android.app.TimePickerDialog;

这三个是我们必须要用到的类,大家可要记住呀,可不能用错包呀,还有就是最重要的一点,也是大家容易忘了的一点,我们一定要加上权限,这样我们才能顺利的实现我们想要的效果,代码如下:

java代码:

package eoe.demo;   import android.content.BroadcastReceiver;   import android.content.Context;   import android.content.Intent;   import android.widget.Toast;   public class AlamrReceiver extends BroadcastReceiver {   @Override   public void onReceive(Context context, Intent intent) {   // TODO Auto-generated method stub   Toast.makeText(context, "闹钟时间到", Toast.LENGTH_LONG).show();   }   }

Java代码:

package eoe.demo;   import java.util.Calendar;   import android.app.Activity;   import android.app.AlarmManager;   import android.app.PendingIntent;   import android.app.TimePickerDialog;   import android.content.Intent;   import android.os.Bundle;   import android.view.View;   import android.widget.Button;   import android.widget.TextView;   import android.widget.TimePicker;   public class Test extends Activity {   /** Called when the activity is first created. */   private TextView tv = null;   private Button btn_set = null;   private Button btn_cel = null;   private Calendar c = null;   @Override   public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);   tv = (TextView) this.findViewById(R.id.TextView);   btn_set = (Button) this.findViewById(R.id.Button01);   btn_cel = (Button) this.findViewById(R.id.Button02);   c = Calendar.getInstance();   btn_set.setOnClickListener(new Button.OnClickListener(){   public void onClick(View v) {   // TODO Auto-generated method stub   c.setTimeInMillis(System.currentTimeMillis());   int hour = c.get(Calendar.HOUR_OF_DAY);   int minute = c.get(Calendar.MINUTE);   new TimePickerDialog(Test.this,new TimePickerDialog.OnTimeSetListener(){   public void onTimeSet(TimePicker view, int hourOfDay, int minute) {   // TODO Auto-generated method stub   c.setTimeInMillis(System.currentTimeMillis());   c.set(Calendar.HOUR_OF_DAY, hourOfDay);   c.set(Calendar.MINUTE, minute);   c.set(Calendar.SECOND, 0);   c.set(Calendar.MILLISECOND, 0);   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.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);//设置闹钟   am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), (10*1000), pi);//重复设置   tv.setText("设置的闹钟时间为:"+hourOfDay+":"+minute);   }   },hour,minute,true).show();   }   });   btn_cel.setOnClickListener(new Button.OnClickListener(){   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);   tv.setText("闹钟取消");   }   });   }   }

Java代码:

<?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical" android:layout_width="fill_parent"   android:layout_height="fill_parent">   <TextView android:layout_width="fill_parent"   android:id="@+id/TextView"   android:layout_height="wrap_content" android:text="@string/hello" />   <Button android:text="设置闹钟" android:id="@+id/Button01"   android:layout_width="wrap_content"   android:layout_height="wrap_content">   </Button>   <Button android:text="取消闹钟" android:id="@+id/Button02"   android:layout_width="wrap_content"   android:layout_height="wrap_content">   </Button>   </LinearLayout>

Java代码:

<?xml version="1.0" encoding="utf-8"?>   <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="eoe.demo"   android:versionCode="1"   android:versionName="1.0">   <application android:icon="@drawable/icon" android:label="@string/app_name">   <activity android:name=".Test"   android:label="@string/app_name">   <intent-filter>   <action android:name="android.intent.action.MAIN" />   <category android:name="android.intent.category.LAUNCHER" />   </intent-filter>   </activity>   <receiver android:name=".AlamrReceiver" android:process=":remote"></receiver>   </application>   </manifest>

关于Android中如何使用Alarm问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI