AlarmManager与PendingIntent的联合使用(一)
来源:互联网 发布:开个淘宝代销要多少钱 编辑:程序博客网 时间:2024/05/22 00:34
AlarmManager与PendingInteng.getBroadcast及getActivity:
package com.example.alarmmanager;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.app.PendingIntent;import android.app.AlarmManager;import android.content.Intent;import android.content.Context;import android.widget.Button;import android.view.View;import android.view.View.OnClickListener;import android.util.Log;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnBroadcast = (Button)findViewById(R.id.btnBroadcast);btnBroadcast.setOnClickListener(new OnClickListener() {public void onClick(View v) {AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent("MYALARMRECEIVER"), Intent.FLAG_ACTIVITY_NEW_TASK);long time = System.currentTimeMillis();am.setInexactRepeating(AlarmManager.RTC_WAKEUP, time, 3000, pi);Log.d("btnBroadcast", "onClick");}});Button btnActivity = (Button)findViewById(R.id.btnActivity);btnActivity.setOnClickListener(new OnClickListener(){public void onClick(View v) {AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(MainActivity.this, MyActivity.class);PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);long time = System.currentTimeMillis();am.setInexactRepeating(AlarmManager.RTC_WAKEUP, time, 10000, pi);Log.d("btnActivity", "onClick");}});}@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;}/*public void onClick(View v) {AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);PendingIntent pi;long time ;switch (v.getId()) {case R.id.btnBroadcast:pi = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent("MYALARMRECEIVER"), Intent.FLAG_ACTIVITY_NEW_TASK);time = System.currentTimeMillis();am.setInexactRepeating(AlarmManager.RTC_WAKEUP, time, 3000, pi);Log.d("btnBroadcast", "onClick");break;case R.id.btnActivity:Intent intent = new Intent(this, MyActivity.class);pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);time = System.currentTimeMillis();am.setRepeating(AlarmManager.RTC_WAKEUP, time, 3000, pi);Log.d("btnActivity", "onClick");}}*/}
广播接收者:
package com.example.alarmmanager;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class ActionBroadcaset extends BroadcastReceiver {private static int num = 0;public void onReceive(Context context, Intent intent) {String action = intent.getAction();Log.d("ActionBroadcast", "action:" + action);if ("MYALARMRECEIVER".equals(action) == true) {Log.d("ActionBroadcast", "New message " + (num++));}}}
getActivity开启的Activity:
package com.example.alarmmanager;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.util.Log;public class MyActivity extends Activity{protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_my);Log.d("MyActivity", "onCreate");}}
用getBroadcast和getActivity要在配置文件中作些相应的添加:
<activity android:name="com.example.alarmmanager.MyActivity" android:label="@string/app_name"> </activity> <receiver android:name="ActionBroadcaset"> <intent-filter> <action android:name="MYALARMRECEIVER"/> </intent-filter> </receiver>
其中的两个xml文件,activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id= "@+id/btnBroadcast" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="广播Broadcast" /> <Button android:id="@+id/btnActivity" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="72dp" android:text="活动Activity" /> <Button android:id="@+id/btnService" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btnActivity" android:layout_below="@+id/btnActivity" android:layout_marginTop="36dp" android:text="服务Service" /></RelativeLayout>
activity_my.xml:
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <TextView android:id= "@+id/btnBroadcast" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="活动" /></RelativeLayout>
0 0
- AlarmManager与PendingIntent的联合使用(一)
- AlarmManager与PendingIntent的联合使用(二)
- Android PendingIntent与AlarmManager
- (一)AlarmManager使用与原理
- alarmManager和prendingIntent的联合使用
- PendingIntent AlarmManager
- 实现可定时响起的闹钟----PendingIntent 与 AlarmManager 的运用
- Notification和NotificationManager的使用(一)以及pendingintent详解
- 闹钟 AlarmManager PendingIntent
- 闹钟 AlarmManager PendingIntent
- 闹钟 AlarmManager PendingIntent
- PendingIntent -AlarmManager介绍
- AlarmManager定时器使用(创建与取消)
- 利用pendingintent 和AlarmManager实现定时任务的一些分析
- PendingIntent和AlarmManager实现定时(重复)任务 Android
- PendingIntent android.app.PendingIntent.getActivity的使用
- 联合的定义与使用
- (4.1.32)AlarmManager的使用
- Oracle_DBA手记
- SVD奇异值分解
- Latent semantic analysis note(LSA)
- Java学习日记之——程序入口主函数解析
- linux学习笔记
- AlarmManager与PendingIntent的联合使用(一)
- Cocos2d-x动作CCAction
- IBM Rational AppScan:跨站点脚本攻击深入解析
- (20)ExtJS之Ext.form.FieldContainer容器字段
- 不能显示 站点地图Web.sitemap 的原因
- LeetCode - Single Number II
- (advanced) UVA 最短路 10381 - The Rock
- Spring基于注解的缓存配置--EHCache AND OSCache
- 不明确薪资的招聘网站都是耍流氓