Android-Service实现手机壁纸自动更换
作者:水中鱼之1999 发布时间:2022-05-21 23:15:35
标签:Android,Service,手机壁纸
本文实例为大家分享了Android Service实现自动更换手机壁纸的具体代码,供大家参考,具体内容如下
先看下效果:
使用界面:
划重点,使用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;
@Override
public void onCreate() {
super.onCreate();
wallpaperManager = WallpaperManager.getInstance(this);
}
@Override
public 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
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
这里我们用闹钟访问pendingIntent来实现壁纸更换:
public class MainActivity extends Activity {
private Button mStart;
private Button mStop;
@Override
protected 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() {
@Override
public 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"?>
<RelativeLayout
xmlns: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" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<Button
android: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"/>
<Button
android: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>
来源:https://blog.csdn.net/qq_43377749/article/details/84347766


猜你喜欢
- 配置注解的支持:在spring4之后,想要使用注解形式,必须得要引入 aop 的包<dependency><groupId
- 前言:Android的服务是开发Android应用程序的重要组成部分。不同于活动Activity,服务是在后台运行,服务没有接口,生命周期也
- 一、算术运算符算术运算符的作用和在数学中的作用一样,主要的算术运算符有以下几种1、+加2、-减3、*乘4、/除5、%取余其中加、减、乘、除的
- JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其
- 在学习Spring的过程中,留下一下痕迹。代理模式,其实就是让别人做同样的事情,但是别人却不仅将我的事情做了,还会把他的事情也做了,换言之,
- 前言本文给大家分享一个使用Android开发写字板功能Dem、简单操作内存中的图像、对图像进行简单的处理、绘制直线、以达到写字板的效果效果图
- 什么是AOPAOP是 Aspect Oriented Programming 的缩写,即面向切面编程,和平常遇到的面向对象OOP编程不一样的
- 本文实例为大家分享了安卓实现单行多列横向滚动,供大家参考,具体内容如下<GridLayout android:layou
- 补充知识:正定矩阵奇异矩阵严格对角占优要理解Gauss消去法,首先来看一个例子:从上例子可以看出,高斯消去法实际上就是我们初中学的阶二元一次
- 集成配置步骤步骤1:加入 Maven 相关依赖<!-- 指定 Springboot 版本 --><parent> &
- Android 获取IP地址最近做项目,有一个需求是Android设备获取当前IP的功能,经过一番查询资料解决了,记录下实现方法。1.使用W
- ftp/sftp概念及搭建ftp是一种文件传输协议,让客户端和服务端能够互相传递文件,图片等数据;方便快捷;sftp是ssh file tr
- 一、前言 网上有许多的多线程断点续传操作,但总是写的很云里雾里,或者
- 1、SpringBoot介绍SpringBoot本身就是为了简单、快速开发Spring框架项目而生的,在maven的基础上,对已有的mave
- Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请。权限分为3类,一组是Normal权限,无需
- 本文实例讲述了Java基于余弦方法实现的计算相似度算法。分享给大家供大家参考,具体如下:(1)余弦相似性通过测量两个向量之间的角的余弦值来度
- 以前面试的时候经常会碰到这样的问题.,叫你写一下ArrayList.LinkedList.Vector三者之间的区别与联系:原先一直搞不明白
- 最近接手了一个需求,要求实现,叮咚买菜。秒杀位置的轮播拆解通过观察发现其实还是挺简单,大致分为1、商品图片的上下轮播2、价格布局渐隐渐现在a
- 转成 Base64 形式的 System.String:string a = "base64字符串与普通字符串互转";
- 前言在日常开发中我们经常会将JSON、XML、HTML、SQL、Regex等字符串拷贝粘贴到我们的代码中,而这些字符串往往包含很多的引号&q