PendingIntent:
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一起使用。[/size]
主程序入口:[/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);//取消
}
}
结合PendingIntent 功能实现墙纸的切换:
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();
}
}
}
分享到:
相关推荐
创建PendingIntent通常使用以下静态方法: ```java PendingIntent.getBroadcast(Context context, int requestCode, Intent intent, int flags) PendingIntent.getActivity(Context context, int requestCode, ...
了解如何正确使用Service、PendingIntent和Notification对于构建高效且用户体验良好的Android应用至关重要。这些组件共同构成了Android系统中后台任务处理的核心机制,帮助开发者实现诸如后台音乐播放、后台数据同步...
Notification 和 PendingIntent 的使用 Notification 是 Android 系统中的一种机制,用于在系统状态栏中显示通知信息,通常用于提醒用户某些事件的发生。PendingIntent 则是 Android 中的一种机制,用于在特定的...
下面我们将深入探讨PendingIntent的使用方法,以及在Notification和短信发送中的具体应用。 首先,理解PendingIntent的基本概念。PendingIntent并不是一个可以直接执行的操作,而是一个持有意图(Intent)的对象,它...
在Android开发中,Intent和PendingIntent是两个非常重要的概念,它们在组件间的通信中起到关键作用。Intent可以理解为一种消息传递对象,用于在不同组件之间传递行为和数据,而PendingIntent则是Intent的一种封装,...
创建PendingIntent通常使用以下三个静态方法: 1. `getActivity(Context, int, Intent, int)`: 创建一个用于启动Activity的PendingIntent。 2. `getBroadcast(Context, int, Intent, int)`: 创建一个用于启动...
以下将详细介绍如何使用 `PendingIntent` 来控制多个闹钟,并阐述相关技巧。 首先,`PendingIntent` 的创建通常通过调用 `getBroadcast()` 方法完成,该方法接受四个参数: 1. `Context context`:上下文对象,...
在Android平台上,开发一款能够发送短信的应用程序是常见的需求,这涉及到对SmsManager和PendingIntent对象的理解和使用。这两个核心组件是实现Android系统中短信发送功能的关键。 首先,我们来详细了解一下...
本文将详细介绍这两个关键类的使用方法以及如何结合它们来实现短信发送功能。 首先,`SmsManager`是Android SDK提供的一种系统服务,用于处理短信的发送和接收。它提供了多种方法来执行短信操作,例如发送单个短信...
在实际应用中,`AlarmManager`和`PendingIntent`的组合使用可以实现复杂的定时任务管理,但需要注意的是,Android系统为了优化电池寿命,可能会对`AlarmManager`的触发时间进行调整。因此,在设计这类功能时,应考虑...
本教程将详细介绍如何在Android项目中创建和使用一个简单的Widget。 1. **理解Android Widget** Android小部件是基于AppWidgetProvider类的,它是一个BroadcastReceiver的子类,负责处理小部件的更新、点击等事件...
* 先建构一PendingIntent对象并使用getBroadcast()方法进行Broadcast * * 将PendingIntent,电话,简讯文字等参数传入sendTextMessage()方法发送简讯*/ PendingIntent mPI = PendingIntent.getBroadcast(EX05_03....
在Android开发中,定时任务是常见且重要的功能之一,用于执行一些特定时间点或周期性的操作,例如提醒用户、更新数据等。`AlarmManager`和`PendingIntent`是Android系统提供的两个关键组件,用于实现这样的定时提醒...
2. **获取PendingIntent**:然后,使用PendingIntent的静态工厂方法,如getActivity()、getService()或getBroadcast(),并传入上下文(Context)、Intent、请求码(int)和标志(int)。请求码和标志用于区分不同的...
在`createBubble`方法中,你需要使用`NotificationCompat.Builder`创建一个通知,然后使用`NotificationManagerCompat`的`createBubble`方法将通知转换为泡泡: ```kotlin private fun createBubble() { val ...
`android-support-v4`库中的BroadcastReceiver和PendingIntent类提供了与原生API相匹配的功能,使得开发者能在低版本的Android上使用这些组件进行事件监听和跨组件通信。 **Preference支持** Preference类是用于...
在Android的`PendingIntent`类中,`getBroadcast`方法是用来创建一个PendingIntent,该Intent将在未来某个时刻由系统广播给指定的BroadcastReceiver。当我们在AppWidget中使用`getBroadcast`时,我们通常是希望在...
本文将详细介绍如何在Android中使用AlarmManager来设置和取消闹钟,并结合`TextDemo5`这个项目进行讲解。 一、AlarmManager介绍 AlarmManager是Android系统提供的一个用于安排周期性或一次性任务的服务。它可以调度...