package mars.com;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class DemoServiceActivity extends Activity {private Button button1;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button1 = (Button) findViewById(R.id.button1);final AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);final Intent intent = new Intent();intent.setAction("mars.com.MY_ACTION");intent.putExtra("message", "該下班了");final PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);final long time = System.currentTimeMillis();// 設定目前時間button1.setOnClickListener(new OnClickListener() {public void onClick(View v) {alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 8000,pendingIntent);// 設定精確重複提醒//alarmManager.set(AlarmManager.RTC, time, pendingIntent);// 設定單次鬧鐘提醒//alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, time,//8000, pendingIntent);// 設定不精確的重複的提醒//alarmManager.cancel(pendingIntent);// 取消鬧鐘}});}}
package mars.com;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context, "觸發單次鬧鐘" + intent.getStringExtra("message"),Toast.LENGTH_SHORT).show();}}
聲明receiver
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mars.com" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".DemoServiceActivity" 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="MyReceiver" > <intent-filter> <action android:name="mars.com.MY_ACTION" > </action> </intent-filter> </receiver> </application></manifest>