732003684

导航

定时器(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);
        }
    };
    
}

 

posted on 2013-03-10 21:35  732003684  阅读(229)  评论(0编辑  收藏  举报