您的位置:首页 > 移动开发 > Android开发

android应用开发详解(十五)-----------------AlarmManager

2014-10-16 18:48 423 查看
package com.example.test_alarmmanager;import android.os.Bundle;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button btn01, btn02;private static final String BC_ACTION = "com.example.test_alarmmanager.BC_ACTION";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 实例化Buttonbtn01 = (Button) findViewById(R.id.button01);btn02 = (Button) findViewById(R.id.button02);// 获得AlarmManager实例final AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);// 实例化IntentIntent intent = new Intent();// 设置intent的action属性intent.setAction(BC_ACTION);intent.putExtra("msg", "快下班了,嘻嘻");// 实例化pendingIntentfinal PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this,0, intent, 0);// 获得系统时间final long time = System.currentTimeMillis();btn01.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub// 重复提示,从当前时间开始,间隔8秒am.setRepeating(AlarmManager.RTC_WAKEUP, time, 8 * 1000, pi);}});btn02.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubam.cancel(pi);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
MyReceiver.java
package com.example.test_alarmmanager;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) {// TODO Auto-generated method stub// 获得提示信息String msg = intent.getStringExtra("msg");Toast.makeText(context, msg, Toast.LENGTH_LONG).show();}}
3、布局文件main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/button01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="设置闹钟" /><Buttonandroid:id="@+id/button02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="取消闹钟" /></LinearLayout>
1)获得AlarmManager实例AlarmManager am = (AlarmMananger)getSystemService(ALARM_SERVICE);(2)闹钟一般是通过发出一个广播来实现的,所以要定义一个PendingIntent发出广播(3)调用AlarmManager的方法,设置定时或重复提醒实例中,取消闹铃,为什么输出错误信息“Service com.android.exchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0a368 that was originally bound here”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: