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”
相关文章推荐
- android应用开发详解(十五)---------------电话测试
- android应用开发之content provider详解
- Android应用开发详解
- Android Google Map应用开发详解
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- 【Android 应用开发】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- Android开发笔记之:AsyncTask的应用详解
- 非常不错的android应用开发详解在安卓开发中
- Android 网络开发与应用实战详解
- 【Android 应用开发】BluetoothClass详解
- android应用开发之intent详解
- 【Android应用开发】-(12)图文详解Dalvik虚拟机
- Android 应用开发笔记 - UI开发详解
- Android应用开发详解【郭宏志】(奋斗之小鸟)_PDF 电子书
- Android 应用开发详解 热销中
- Android 应用开发详解 热销中
- android开发AlarmManager详解
- 【Android 应用开发】BluetoothSocket详解
- 【Android 应用开发】BluetoothSocket详解