定时器(AlarmManager)
AlarmManager am
am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
1、通过广播
PendingIntent.getBroadcast
2、通过service
PendingIntent.getService
3、通过Activity
PendingIntent.getActivity(AlarmTestActivity.this, 0,
new Intent(AlarmTestActivity.this, ActionActivity.class),
Intent.FLAG_ACTIVITY_NEW_TASK);
package com.yfz; 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.view.View; import android.view.View.OnClickListener; import android.view.ViewDebug.CapturedViewProperty; import android.widget.Button; public class AlarmTestActivity extends Activity { /** Called when the activity is first created. */ AlarmManager am ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); am = (AlarmManager)getSystemService(ALARM_SERVICE); Button btn1 = (Button)findViewById(R.id.id_btn1); Button btn2 = (Button)findViewById(R.id.id_btn2); Button btn3 = (Button)findViewById(R.id.id_btn3); btn1.setOnClickListener(onclick); btn2.setOnClickListener(onclick); btn3.setOnClickListener(onclick); } OnClickListener onclick = new OnClickListener() { @Override public void onClick(View v) { long now = System.currentTimeMillis(); PendingIntent pi = null; switch (v.getId()) { case R.id.id_btn1: pi = PendingIntent.getBroadcast(AlarmTestActivity.this, 0, new Intent(AlarmTestActivity.this, ActionBroadCast.class), Intent.FLAG_ACTIVITY_NEW_TASK); break; case R.id.id_btn2: pi = PendingIntent.getService(AlarmTestActivity.this, 0, new Intent(AlarmTestActivity.this, ActionService.class), Intent.FLAG_ACTIVITY_NEW_TASK); break; case R.id.id_btn3: pi = PendingIntent.getActivity(AlarmTestActivity.this, 0, new Intent(AlarmTestActivity.this, ActionActivity.class), Intent.FLAG_ACTIVITY_NEW_TASK); break; default: break; } am.setInexactRepeating(AlarmManager.RTC_WAKEUP, now, 30*1000, pi); } }; }