本文实例为大家分享了Android Service实现自动更换手机壁纸的具体代码,供大家参考,具体内容如下
先看下效果:
使用界面:
划重点,使用service前别忘了给相应的service添加服务
1
|
<service android:name= ".ChangeService" ></service> |
具体实现:
首先定义ChangeService类,继承Service访问系统实现壁纸切换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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来实现壁纸更换:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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); } }); } } |
布局设计:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<? 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