先看下效果:

使用界面:

划重点,使用service前别忘了给相应的service添加服务

<service android:name=".ChangeService"></service>

具体实现:
首先定义ChangeService类,继承Service访问系统实现壁纸切换

public class ChangeService extends Service {int[] wallpapers = new int[]{R.drawable.a2, R.drawable.a3, R.drawable.a4};WallpaperManager wallpaperManager;int current = 0;@Overridepublic void onCreate() {super.onCreate();wallpaperManager = WallpaperManager.getInstance(this);}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {if (current >= 3) {current = 0;} try {wallpaperManager.setResource(wallpapers[current++]);} catch (IOException e) {e.printStackTrace();} return START_STICKY;}@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}
}

这里我们用闹钟访问pendingIntent来实现壁纸更换:

public class MainActivity extends Activity {private Button mStart;private Button mStop;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mStart = (Button) findViewById(R.id.start);mStop = (Button) findViewById(R.id.stop);final Intent intent = new Intent(MainActivity.this, ChangeService.class);final PendingIntent pi = PendingIntent.getService(MainActivity.this, 0, intent, 0);mStart.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlarmManager alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 0, 2000, pi);mStart.setEnabled(false); mStop.setEnabled(true);Toast.makeText(MainActivity.this, "壁纸定时更换启动成功啦", Toast.LENGTH_SHORT).show();}});mStop.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {mStart.setEnabled(true);mStop.setEnabled(false);AlarmManager alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);alarmManager.cancel(pi);}});}
}

布局设计:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns: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:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:orientation="horizontal"><Buttonandroid:id="@+id/start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_horizontal"android:text="Start"android:textSize="25dp"android:textColor="#ffffffff"/><Buttonandroid:id="@+id/stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_horizontal"android:text="Stop"android:textSize="25dp"android:textColor="#ffffffff"/></LinearLayout></RelativeLayout>

Android-Service自动更换手机壁纸相关推荐

  1. Android桌面三:手机壁纸

    Android桌面三:手机壁纸 手机壁纸 手机壁纸分为静态壁纸和动态壁纸,设置方式也不同 一:静态壁纸 Android允许使用WallpaperManager来改变手机壁纸,提供了如下方法进行设置: ...

  2. linux更改桌面壁纸的脚本,自动更换桌面壁纸的脚本,支持Ubuntu 18.04系统

    下面提供一个自动更换桌面壁纸的脚本,它支持Ubuntu 18.04.UbuntuKylin 18.04.Ubuntu Mate系统. 注意事项: 1.默认的壁纸通常在目录路径为/usr/share/b ...

  3. 怎样更换手机壁纸?2022更换手机壁纸软件大全

    好看的手机壁纸不仅可以给自己带来愉快的心情,也可以彰显自己的个性.怎样更换手机壁纸呢?好看的手机壁纸软件有哪些呢?小编为大家整理了一些非常好看的手机壁纸软件,有了这些壁纸软件,就可以每天更换不同风格的 ...

  4. Python秀操作 自动更换电脑壁纸

    文章目录 一.前言 二.获取壁纸 1. 分析网页 2. 爬虫基本思路 3. Python代码实现 三.自动更换壁纸 四.打包成exe 原文链接:https://yetingyun.blog.csdn. ...

  5. 利用Python自动更换电脑壁纸

    公众号后台回复"图书",了解更多号主新书内容 作者:叶庭云,https://blog.csdn.net/fyfugoyfa 一.前言 美桌网里有大量的高清图片素材和壁纸,并且可以免 ...

  6. 听说你还在点击图片,然后鼠标右键设置电脑壁纸,小编教你如何实现自动更换电脑壁纸操作

    运用Python实现自动更换电脑壁纸 前言 最近看了一个讲解win的视频,觉得内容还不错,于是就写了这一篇博文,希望大家喜欢.本文章分为两个阶段,第一个阶段是下载电脑壁纸,因为小编没有图片壁纸,所以我 ...

  7. 【Python爬虫案例】批量采集网站壁纸,实现自动更换桌面壁纸

    前言 美照天天换,才不会腻 不知道你们是不是这样,我的手机壁纸电脑壁纸,隔三岔五就喜欢换,看久了 我就腻了,索性就用python把这个网站的壁纸都采集下来,顺便再让电脑自动更换我的桌面壁纸 ~ 一篇文 ...

  8. windows无法访问指定设备_微软为安卓设备推出必应壁纸应用 可在每天清晨自动更换最新壁纸...

    此前微软已经为Windows 10系统推出官方版的必应壁纸应用,安装后每日都可以自动更换必应提供的全新壁纸. 必应每日提供的壁纸也都是精挑细选的 ,这些壁纸会在 必应搜索.Microsoft Edge ...

  9. Python定时自动更换电脑壁纸

    周末好!难得放假,今天的你是不是一觉睡到大中午了?不要有愧疚感,现在的年轻人压力实在太大,好好睡上一觉已经是一件很奢侈的事情了,就给自己好好放个假吧! 在这难得的休闲时光,我们也不整那些太复杂的话题, ...

最新文章

  1. 心系AI的百度,这次能翻身吗?
  2. falsk-sqlalchemy 连接数据库出现 No module named ‘MySQLdb‘(笔记自用)
  3. Ubuntu 防火墙常用配置操作(ufw)【适用于 Debian 及其衍生版---Linux Mint、Deepin 等】
  4. 肖仰华 | 大规模、高质量的金融知识图谱,如何自动化构建?
  5. jQuery UI加入效果
  6. 判断是否为数组的 JavaScript 方法总结
  7. adb如何使用javac编译java程序并且运行
  8. 注意,GitHub发布重大更新,关系到所有程序员!
  9. excel向下自动填充单元格
  10. ArcGIS中ERROR 999999报错Configuration RasterCommander ImageServer can not be started解决
  11. 小米平板可以编程c语言吗,小米平板方便使用吗
  12. 【日常】python脚本系列:拳皇13一键出招以及连段实现
  13. python27.dll引起的appcrash_Python已经停止工作(APPCRASH)Python
  14. HTML基础知识概要面试必备
  15. 二极管在LDO电路中的几种常见用法
  16. 简单个人简历背景模板
  17. Pascal 过程与函数
  18. 摄影光学与镜头pdf_北京电影学院摄影专业系列教材:摄影光学与镜头
  19. 科目三必看要点 驾驶经验汇总
  20. 高通---ChIP-Seq数据的Peak calling以及visualization

热门文章

  1. Volo.Abp 整合 WebApiClient 从请求中获取 Headers 信息
  2. 实时渲染的三种渲染方法介绍
  3. 基于C语言实现车辆管理系统
  4. HDU4466 Triangle
  5. 微信骗子 QQ7492593 电话 18627650031 这个骗子骗我4000块钱
  6. spark java mysql 连接数据库_Spark入门:通过JDBC连接数据库(DataFrame)
  7. Java 学习笔记(导航目录)
  8. Windows7系统安装Oracle11g R2图解
  9. 【java】java多线程及线程池详解
  10. C# winform与Javascript的相互调用