package com.urey.FuckAll; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Fuck extends Activity implements OnClickListener{ private static Fuck bcr; private Button btn,btn2; boolean boolk = false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bcr = this; setContentView(R.layout.main); btn = (Button)findViewById(R.id.btn01); btn.setOnClickListener(this); btn2 = (Button)findViewById(R.id.btn02); btn2.setOnClickListener(this); setTitle("Waiting...alarm=15"); Intent intent = new Intent(Fuck.this,AlarmReceiver.class); PendingIntent pintent = PendingIntent.getBroadcast(Fuck.this, 0, intent, 0); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 15); //schedule the alarm AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pintent); } public static Fuck getBcReceiver() { return bcr; } public void btEvent(String data) { if(boolk) setTitle(data); else setTitle("waiting..."); boolk = !boolk; } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v == btn) { setTitle("Repeating..."); Intent intent = new Intent(Fuck.this,AlarmReceiver.class); PendingIntent pintent = PendingIntent.getBroadcast(Fuck.this, 0, intent, 0); // long firsttime = SystemClock.elapsedRealtime(); firsttime += 800; //schedule the alarm AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firsttime, 800, pintent); } else if(v == btn2) { Intent intent = new Intent(Fuck.this,AlarmReceiver.class); PendingIntent pintent = PendingIntent.getBroadcast(Fuck.this, 0, intent, 0); AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.cancel(pintent); finish(); } } } AlarmReceiver.java package com.urey.FuckAll; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; //除了activity物件,還有BroadcastReceiver和service兩種物件 //Activity提供介面佈局與user交互 //后兩種物件則提供與其他城市的互動 public class AlarmReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Fuck bcRec = Fuck.getBcReceiver(); bcRec.btEvent("From Alarm Receiver!"); } } 配置文件中添加: <receiver android:name=".AlarmReceiver" />