Android中Alarm的使用
作者:佚名
本文介紹的是用AlarmManager來(lái)設(shè)置自己的鬧鐘,不要忘記用到的類,本文由提到,希望對(duì)你有幫助!
用AlarmManager來(lái)設(shè)置自己的鬧鐘,其中我們主要用到的類有
- import android.app.AlarmManager;
- import android.app.PendingIntent;
- import android.app.TimePickerDialog;
這三個(gè)是我們必須要用到的類,大家可要記住呀,可不能用錯(cuò)包呀,還有就是最重要的一點(diǎn),也是大家容易忘了的一點(diǎn),我們一定要加上權(quán)限,這樣我們才能順利的實(shí)現(xiàn)我們想要的效果,代碼如下:
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, "鬧鐘時(shí)間到", 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);//設(shè)置鬧鐘
- am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), (10*1000), pi);//重復(fù)設(shè)置
- tv.setText("設(shè)置的鬧鐘時(shí)間為:"+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="設(shè)置鬧鐘" 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開(kāi)發(fā)中插入新的Activity
責(zé)任編輯:zhaolei
來(lái)源:
互聯(lián)網(wǎng)