溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中如何使用Alarm

發(fā)布時間:2021-06-26 15:32:00 來源:億速云 閱讀:161 作者:Leah 欄目:移動開發(fā)

Android中如何使用Alarm,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

AlarmManager來設(shè)置自己的鬧鐘,其中我們主要用到的類有

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

這三個是我們必須要用到的類,大家可要記住呀,可不能用錯包呀,還有就是最重要的一點,也是大家容易忘了的一點,我們一定要加上權(quán)限,這樣我們才能順利的實現(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, "鬧鐘時間到", 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è)置的鬧鐘時間為:"+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>

關(guān)于Android中如何使用Alarm問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI