AlarmManager学习之定时更换壁纸
本程序通过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;@Override
protected 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() {@Overridepublic 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() {@Overridepublic 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;@Overridepublic 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;}@Overridepublic void onCreate() {super.onCreate();wManager = WallpaperManager.getInstance(this);}@Overridepublic IBinder onBind(Intent intent) {return null;}}
另外在 AndroidManifest.xml 中加上 权限
<!--更换壁纸的权限-->
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
AlarmManager学习之定时更换壁纸相关推荐
- 使用AlarmManager定时更换壁纸
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 更换壁纸要用到WallpaperManager,它提供了clear()方法清除壁纸,还提供了如下方法设置系统的 ...
- 我的Android进阶之旅------gt;Android使用AlarmManager全局定时器实现定时更换壁纸
该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...
- 我的Android进阶之旅------Android使用AlarmManager全局定时器实现定时更换壁纸
该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...
- 使用AlarmManager定时更换壁纸----之二
import java.io.IOException; import android.app.Service; import android.app.WallpaperManager; import ...
- Windows更换壁纸脚本 获取必应壁纸 定时更换壁纸 c#调用.ps1脚本
想给电脑换上必应的每日壁纸,之前使用的是Bing Wallpaper软件,这个软件每日刷新只能更换为前一天的壁 纸,而且需要自启动更换壁纸,于是打算用定时计划powershell脚本完成这个工作. 1 ...
- Python桌面自定义---实现定时更换桌面壁纸
Python桌面自定义---实现定时更换桌面壁纸 1 效果 2 获取大量壁纸 3 Python代码实现定时更换壁纸 1 效果 大致效果如下,设置过定时更换壁纸的应该都知道是啥场景. 2 获取大量壁 ...
- android 通过service 执行AlarmManager 自动更换壁纸
自动更换壁纸是通过服务在后台进行的,所以 新建一个类继承service服务 先附上详细的解析代码: package com.example.changebz; import java.io.IOExc ...
- win10主题更换_利用termuxapi手机定时更换网络随机壁纸;免费申请小米收款宝
1.再来发一个没有什么软用的教程,利用termux-api手机定时更换网络壁纸. 国产定制系统,有很多主题,更换随机壁纸也相对比较简单.但是对于原生或者类原生系统,如一加,索尼,诺基亚,pixel等等 ...
- Android开发之自动更换壁纸
本程序主要实现了: 1.使用AssetManager将assets目录中的文件复制到SD卡的指定位置 2.使用AlarmManager全局定时器,周期性的启动指定组件切换壁纸 3.使用SharedPr ...
最新文章
- sam格式的结构和意义_BAM/SAM文件格式的一些小知识
- python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!
- 网络编程学习笔记(TCP回射服务器程序修订版)
- SQL server 2000建立远程连接(局域网)
- 游戏美术本地化技巧:不重新创作,几个简单步骤修改出一张完美的游戏配图
- Python in worker has different version 3.7 than that in driver 3.6
- 用javascript动态调整iframe高度
- 使用Python批量下载数据
- mysql -d -e_mysql常用函数
- 比赛打分系统的计时器数字或滚动抽签数字不显示的原因解惑
- LCD1602和12864显示器
- gst-launch-1.0
- 为什么我们买了股票就不涨被套,股票割肉就飞了?
- 用C语言实现两个整数相加(函数的方法)
- Mozilla Firefox 全版本下载
- 网络编程懒人入门(七):深入浅出,全面理解HTTP协议
- 网络传真和传真服务器
- 2016NOIP信息学竞赛普及组(北京)一等奖名单
- 如何使英文博客内容自动换行
- 计算机入门教程 office2007入门,大学计算机基础教程Office2007版.PPT