AlarmManager学习之定时更换壁纸
来源:互联网 发布:淘宝网上购物的步骤 编辑:程序博客网 时间:2024/06/06 02:39
本程序通过AlarmManager周期性的调用某个Service ,从而让系统定时的更换壁纸的功能.更换壁纸的API 是WallPaperManager,它提供了 clear()方法来清除壁纸.还提供了如下方法来设置系统的壁纸.
- setBitmap(Bitmap bitmap): 将壁纸设置成bitmap代表的位图.
- setResource(int resid): 将壁纸设置为 resid资源代表的图片.
- setStream(InputStream data): 将壁纸设置为 data数据代表的图片.
该程序界面只有两个按钮,一个用于启动定时更换壁纸,另一个按钮用于关闭定时更换壁纸.
`package com.test.alarmmanager.changewallpaper;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.test.alarmmanager.R;
/**
* 定时更换壁纸 AlarmManager
*/
public class AlarmChangeWallpaperActivity extends AppCompatActivity {
Button stop,start;
AlarmManager mManager;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alarm_change_wallpaper); mManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE); stop = (Button) findViewById(R.id.stop); start = (Button) findViewById(R.id.start); //指定启动的 CngeService 组件 Intent intent = new Intent(this,ChangeService.class); //创建 PendingIntent 对象 final PendingIntent pi = PendingIntent.getService(this, 0, intent, 0); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //每个3秒钟执行pi 代表的组件一次 mManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 3000, pi); start.setEnabled(false); stop.setEnabled(true); Toast.makeText(AlarmChangeWallpaperActivity.this, "定时更换壁纸已启动成功", Toast.LENGTH_SHORT).show(); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { start.setEnabled(true); stop.setEnabled(false); //取消对 pi 的调度 mManager.cancel(pi); } });}
}
`
package com.test.alarmmanager.changewallpaper;import android.app.Service;import android.app.WallpaperManager;import android.content.Intent;import android.os.IBinder;import com.test.alarmmanager.R;import java.io.IOException;/** * 更换壁纸的组件 */public class ChangeService extends Service { //定义定时更换的壁纸资源 int[] wallpapers = new int[]{R.mipmap.lijiang, R.mipmap.qiao, R.mipmap.shuangta, R.mipmap.shui}; //定义系统更换壁纸的管理服务 WallpaperManager wManager; //定义当前显示的图片 int current = 0; @Override public int onStartCommand(Intent intent, int flags, int startId) { //如果到了最后一张就重新开始 if (current >= 4) { current = 0; } //更换壁纸 try { wManager.setResource(wallpapers[current++]); } catch (IOException e) { e.printStackTrace(); } return START_STICKY; } @Override public void onCreate() { super.onCreate(); wManager = WallpaperManager.getInstance(this); } @Override public IBinder onBind(Intent intent) { return null; }}
另外在 AndroidManifest.xml 中加上 权限 <!--更换壁纸的权限-->
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
- AlarmManager学习之定时更换壁纸
- 使用AlarmManager定时更换壁纸
- 我的Android进阶之旅------>Android使用AlarmManager全局定时器实现定时更换壁纸
- 我的Android进阶之旅------>Android使用AlarmManager全局定时器实现定时更换壁纸,androidalarmmanager
- Android使用AlarmManager全局定时器实现定时更换壁纸
- android 通过service 执行AlarmManager 自动更换壁纸
- AlarmManager之定时刷新
- Android开发之自动更换壁纸
- Android之AlarmManager学习
- AlarmManager 定时
- Android之AlarmManager-用于定时请求服务器
- android之使用AlarmManager开启定时服务
- 深入学习android之AlarmManager
- 深入学习android之AlarmManager
- 深入学习android之AlarmManager
- 深入学习android之AlarmManager
- 深入学习android之AlarmManager
- 深入学习android之AlarmManager
- maven jar包冲突: cannot be cast to ch.qos.logback.classic.LoggerContext
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- 视频监控三大标准比较 ONVIF不负众望
- 【BLE】CC2541之删除服务
- OD脚本帮助
- AlarmManager学习之定时更换壁纸
- void linphone_proxy_config_refresh_register(LinphoneProxyConfig * cfg)
- 12年写的一份渗透测试报告
- 23种设计模式实例
- 基于SHA-256的HMAC文件校验器
- 开博第一天,给自己列个计划吧
- HTTPClient模块的HttpGet和HttpPost
- iOS scrollView,tableView,collection滑动改变方向,分别在上滑和下滑中进行操作
- 责任链模式在Android中的应用