初学Android 闹钟服务调用Service 六十九

分享一下我老师大神的人工智能教程!零基础,通俗易懂!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秒更换一次,也可以停止更换的服务





           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值