Android 之 PendingIntent用法介绍
2014-01-05 13:22
169 查看
[size=large][color=darkred]PendingIntent:[/color][/size]
[size=small][color=olive]1. 英文释义:intent,意图; pending 表示即将发生的事;
2. 作用:PendingIntent这个类用来处理即将发生的事;
3. 例如:在通知Notification中用于页面跳转,但不马上跳转;
4. 对比:Intent 是及时启动的,intent随activity消失而消失;PendingIntent可以看作是对intent的包装,
5. 提示:Intent 一般是用来作Activity、 Service、BroadcastReceiver之间传递数据,而Pendingintent,一般用在Notification上,可以理解为延迟执行的intent;
6. 获取PendingIntent的实例:三个静态方法可以获取
a) PendingIntent.getBroadcast();
b) PendingIntent.getActivity();
c) PendingIntent.getService();
7. 说明:由于pendingintetn 中,保存了当前APP 的context,使它赋予外部App一种能力,使得外部APP可以如同当前APP一样执行pendingintent里的intetn,就算执行时当前的APP已经不存在了,也能通过存在pendingintent的context照样执行intent,另外还可以处理intent执行后的操作;经常和alermaner 和notificationmanager一起使用。[/color][/size][/size]
[color=blue]主程序入口:[/color][/size]
[size=medium][color=indigo]
结合PendingIntent 功能实现墙纸的切换:[/color][/size]
[size=small][color=olive]1. 英文释义:intent,意图; pending 表示即将发生的事;
2. 作用:PendingIntent这个类用来处理即将发生的事;
3. 例如:在通知Notification中用于页面跳转,但不马上跳转;
4. 对比:Intent 是及时启动的,intent随activity消失而消失;PendingIntent可以看作是对intent的包装,
5. 提示:Intent 一般是用来作Activity、 Service、BroadcastReceiver之间传递数据,而Pendingintent,一般用在Notification上,可以理解为延迟执行的intent;
6. 获取PendingIntent的实例:三个静态方法可以获取
a) PendingIntent.getBroadcast();
b) PendingIntent.getActivity();
c) PendingIntent.getService();
7. 说明:由于pendingintetn 中,保存了当前APP 的context,使它赋予外部App一种能力,使得外部APP可以如同当前APP一样执行pendingintent里的intetn,就算执行时当前的APP已经不存在了,也能通过存在pendingintent的context照样执行intent,另外还可以处理intent执行后的操作;经常和alermaner 和notificationmanager一起使用。[/color][/size][/size]
[color=blue]主程序入口:[/color][/size]
package com.sun.pengingintent;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
/**
* 功能:使用服务实现墙纸的切换
* @author Administrator
*
*/
public class MainActivity extends Activity {
private AlarmManager alarmManager ;
// 程序入口
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取系统服务对象
alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);
setWall();
}
/**
* 设置墙纸
*/
public void setWall(){
PendingIntent pi = PendingIntent.getService(this,0, new Intent("SERVICE_TO_SETWALL"), PendingIntent.FLAG_UPDATE_CURRENT);
// 类型 ,执行延迟的时间,实行时间间隔,动作
alarmManager.setRepeating(alarmManager.RTC_WAKEUP, 0, 2000, pi);
// alarmManager.cancel(pi);//取消
}
}
[size=medium][color=indigo]
结合PendingIntent 功能实现墙纸的切换:[/color][/size]
package com.sun.pengingintent;
import android.app.Service;
import android.app.WallpaperManager;
import android.content.Intent;
import android.os.IBinder;
/**
* 实现效果 -- 墙纸的切换 , 背景图片
* @author Administrator
*
*/
public class WallService extends Service {
private int[] res = new int[]{R.drawable.a,R.drawable.b,R.drawable.c}; // 切换图片资源
private WallpaperManager wallpaperManager; //墙纸管理器
private int index; // 资源索引
// 绑定服务
public IBinder onBind(Intent intent) {
return null;
}
// 创建服务
public void onCreate() {
super.onCreate();
wallpaperManager = WallpaperManager.getInstance(WallService.this); // 获取壁纸管理器对象
}
// 销毁服务
public void onDestroy() {
super.onDestroy();
}
/**
* 启动服务
* 每次启动开始获取资源
*/
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
try{
if(index>=3){
index = 0;
}
wallpaperManager.setResource(res[index++]); // 设置资源
}catch(Exception ex){
ex.printStackTrace();
}
}
}
相关文章推荐
- [Android]新手入门:Intent的介绍和常见用法总结
- Android中Intent的用法介绍
- android中pendingIntent的用法
- Android中PendingIntent的基本用法
- Android之pendingIntent的介绍
- android notification pendingIntent remoteviews的基础介绍
- android中Intent的介绍和常见用法总结
- android中pendingIntent的用法--状态栏通知、短信通知、告警通知
- android PendingIntent 介绍
- Android Intent的几种用法全面总结
- Android Intent的几种用法全面总结
- Android Intent 用法全面总结
- Android中pendingIntent的深入理解
- Android Collections.sort的几种用法介绍
- android ListView用法介绍
- 总结android中Intent的用法
- Android startActivityForResult(intent, requestCode)的用法。
- Android中pendingIntent的深入理解
- Android Intent Flag的介绍
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法