分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
下面的例子是让AlarmManager定时调用某个Service,从而让系统实现定时更换壁纸的功能
界面非常简单
先创建更换壁纸的服务类
package WangLi.Service.AlarmWallpaper;import android.app.Service;import android.app.WallpaperManager;import android.content.Intent;import android.os.IBinder;public class ChangeService extends Service { //定义定时更新的壁纸资源 int[] wallpapers = new int[] { R.drawable.shuangta, R.drawable.lijiang, R.drawable.qiao, R.drawable.shui }; //定义系统的壁纸管理服务 WallpaperManager wManager; //定义当前所显示的壁纸 int current = 0; @Override public void onStart(Intent intent,int startId) { //如果到了最后一张,系统重头开始 if(current >= 4) current = 0; try { //改变壁纸 wManager.setResource(wallpapers[current++]); } catch(Exception e) { e.printStackTrace(); } super.onStart(intent, startId); } @Override public void onCreate() { super.onCreate(); //初始化WallpaperManager wManager = WallpaperManager.getInstance(this); } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; }}
这里面用到了WallpaperManager这个类,是Android系统里面专门管理墙纸的类
程序里面要加上设置墙纸的权限
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
同时配置上这个service类
<service android:name="ChangeService"></service>
接着在主界面调用这个服务
package WangLi.Service.AlarmWallpaper;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.Service;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class AlarmChangeWallpaper extends Activity { // 定义AlarmManager对象 AlarmManager aManager; Button start, stop; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); start = (Button) findViewById(R.id.start); stop = (Button) findViewById(R.id.stop); aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE); // 指定启动ChangeService组件 Intent intent = new Intent(AlarmChangeWallpaper.this, ChangeService.class); // 创建PendingIntent对象 final PendingIntent pi = PendingIntent.getService( AlarmChangeWallpaper.this, 0, intent, 0); start.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 设置每5秒执行pi代表的组件一次 aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 5000, pi); start.setEnabled(false); stop.setEnabled(false); Toast.makeText(AlarmChangeWallpaper.this, "壁纸定时更换启动成功啦", 5000) .show(); } }); stop.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { start.setEnabled(true); stop.setEnabled(true); //取消对pi的调度 aManager.cancel(pi); } }); }}
成功设置后,壁纸是5秒更换一次,也可以停止更换的服务